class A {
private int x = 3;
public static void main(String[] args) {
new A().func(new A());
}
public void func(A a) {
System.out.println(a.x); // 編譯通過,輸出 3
}
}
private 訪問權限針對「類」,而非「實例」。
同一個類別內的程式碼,可任意存取**任意實例**的 private 成員。
| 代碼 | 含義 |
|---|---|
new A() | 建立 A 的實例 #1 (隱式 this) |
.func(new A()) | 呼叫實例 #1 的 func 方法,參數為新建實例 #2 |
public void func(A a) | 方法參數 a 為 **A 類型的引用**,指向實例 #2 |
a.x | 存取參數 a 所指實例 #2 的私有欄位 x,**合法** |