interface Test {
public void test();
}
public class TestMain {
private String h = "AAA";
public static void main(String[] args) {
TestMain t = new TestMain();
}
public TestMain() {
Test t = new Test() {
public void test() {
System.out.println(h);
}
};
t.test();
}
}
上面的源代碼運行良好。Java匿名類和可訪問私有變量
但我認爲變量'h'應該從匿名類無法訪問。 我需要知道它爲什麼運作良好。
感謝您提前給予您的所有幫助!
靜態嵌套類可以訪問封閉類的私有靜態成員。 –
這是正確的,我的意思是「不能訪問封閉類的非靜態成員」 – PaganSensei
@SandeepRajeev:仍然不正確。給定一個封閉類的實例 - 也就是說,如果它接收一個作爲方法參數,或者創建它自己的一個 - 靜態嵌套類可以訪問該實例的私有成員。 –