Найти тему
DEBAGanov

Java 380. Можем ли мы получить доступ ко всем членам внешнего класса внутри внутреннего класса?

Да, внутренний класс имеет полный доступ ко всем членам внешнего класса, включая закрытые (private) и защищенные (protected) члены.

Внутренние классы создаются в контексте внешнего класса и являются своего рода членом внешнего класса. Как таковые, они могут свободно обращаться к нестатическим полям и методам внешнего класса, используя ключевое слово this. Они также могут использовать все другие модификаторы доступа, такие как private, protected и public, для получения доступа к членам внешнего класса.

Вот пример внутреннего класса, который обращается к закрытому полю внешнего класса:

public class Outer {
private int x = 10;

public class Inner {
public void printX() {
System.out.println(x);
// Обращение к закрытому полю внешнего класса
}
}
}

Здесь внутренний класс Inner может обращаться к закрытому полю x внешнего класса без каких-либо проблем.

Через экземпляр внешнего класса можно создать экземпляр внутреннего класса и использовать его методы:

Outer outer = new Outer(); /
/ Создание экземпляра внешнего класса
Outer.Inner inner = outer.new Inner();
// Создание экземпляра внутреннего класса
inner.printX(); // Выводит 10

Таким образом, внутренний класс имеет полный доступ ко всем членам внешнего класса и может использоваться для выполнения задачи, которую не удобно выполнять в самом внешнем классе.

1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions

Tелеграмм канал: https://t.me/DEBAGanov

Мое резюме: https://github.com/DEBAGanov