Я пытаюсь написать простую программу, которая работает с вложенным классом. Я заметил, что вложенный класс не может изменить (или я сделал ошибку) ограждающим поле класса:Вложенные классы doen't меняют класс окружения
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
«s не меняет:
public static void main(String[] args) {
MyClass myClass = new MyClass();
myClass.getInfo();
}
Выход false
. Но я ожидал true
. Что я сделал не так?
Вы дважды вызываете конструктор 'NestedClass', поэтому он будет дважды изменять значение' bool' 'false -> true -> false'. Вы можете добавить sysout в конструктор 'NestedClass', чтобы это увидеть. –