0
我嘗試編寫簡單的程序,該程序可與嵌套類一起使用。我注意到,該嵌套類不能改變(或我做了錯誤的)封閉類領域:嵌套類不會更改封閉類字段
public class MyClass {
private boolean bool = false;
private NestedClass nestedClass = new NestedClass();
private class NestedClass {
private void print(){
System.out.println(bool);
}
NestedClass(){
bool = !bool;
}
}
MyClass(){
nestedClass = new NestedClass();
}
public void getInfo(){
nestedClass.print();
}
}
的MyClass
新實例的創建後,bool
的值不會改變:
public static void main(String[] args) {
MyClass myClass = new MyClass();
myClass.getInfo();
}
輸出是false
。但我預計true
。 我做錯了什麼?
您正在調用'NestedClass'構造函數兩次,所以它會兩次更改'bool''false - > true - > false'的值。您可以將sysout添加到'NestedClass'構造函數中來查看。 –