Встречается на собеседованиях • сегодня

В чем разница между обычным и статическим внутренним классом

Основное отличие в связи с внешним классом:

  • Обычный (нестатический) внутренний класс
    • Имеет неявную ссылку на экземпляр внешнего класса (OuterClass.this)
    • Может обращаться к нестатическим полям и методам внешнего класса
    • Требует создания экземпляра внешнего класса
java
class Outer {
    private int x = 10;
    
    class Inner {  // Нестатический
        void printX() {
            System.out.println(x);  // Доступ к полю внешнего класса
        }
    }
}
  • Статический внутренний класс
    • Не имеет ссылки на внешний класс
    • Может обращаться только к статическим членам внешнего класса
    • Может существовать без экземпляра внешнего класса
java
class Outer {
    private static int y = 20;
    
    static class Nested {  // Статический
        void printY() {
            System.out.println(y);  // Только к статическим полям
        }
    }
}

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

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы