在Java中,類的訪問權限主要有四種:public、protected、默認(無修飾符)和private。這些訪問權限決定了類、變量、方法和構造函數的可見性范圍。
public:public訪問權限是最寬松的,表示該類、方法或變量可以從任何地方訪問。當一個類被聲明為public時,其他任何類都可以直接實例化這個類或者訪問它的public方法和變量。
protected:protected訪問權限介于public和默認之間。表示該類、方法或變量可以被同一個包內的其他類訪問,以及所有子類(無論是否在同一個包內)訪問。如果一個類是protected的,那么它可以被同一個包內的其他類以及所有子類訪問。
默認(無修飾符):當類、方法或變量沒有指定訪問權限時,它們的訪問權限默認為默認。這意味著它們只能在同一個包內的其他類訪問。這種訪問權限適用于只在同一個包內使用的類、方法和變量。
private:private訪問權限是最嚴格的,表示該類、方法或變量只能在聲明它的類內部訪問。私有成員不能被外部類訪問,也不能被子類繼承。通常,對于不希望被外部訪問的成員(如實現細節),我們會使用private修飾符。
以下是一個簡單的示例,展示了不同訪問權限的類定義:
// public類
public class PublicClass {
public int publicVar;
protected int protectedVar;
int defaultVar;
private String privateVar = "default";
}
// 默認訪問權限類
class DefaultClass {
int defaultVar;
}
// 子類
class SubClass extends PublicClass {
void accessMembers() {
// 可以訪問父類的public和protected成員
publicVar = 1;
protectedVar = 2;
// 無法訪問父類的defaultVar和privateVar
}
}