Назад к вопросам
Middle
68
questionbank

Как получить доступ к полю внешнего класса из вложенного класса?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Можно получить доступ к полю внешнего класса из вложенного класса, используя квалифицированный this.

public class OuterClass {

    private int outerField = 10;

    public class InnerClass {

        public void accessOuterField() {
            // Доступ к полю внешнего класса через OuterClass.this
            int value = OuterClass.this.outerField; 
            System.out.println("Значение outerField: " + value);
        }
    }

    public static void main(String[] args) {
        OuterClass outer = new OuterClass();
        OuterClass.InnerClass inner = outer.new InnerClass();
        inner.accessOuterField(); 
    }
}

В случае с static вложенными классами, прямой доступ к нестатическим полям внешнего класса невозможен, так как static класс не связан с конкретным экземпляром внешнего класса. Доступ возможен только к статическим полям внешнего класса, или если передать экземпляр внешнего класса во вложенный класс.