Встречается на собеседованиях • сегодня
В чем разница между обычным и статическим внутренним классом
Основное отличие в связи с внешним классом:
- Обычный (нестатический) внутренний класс
- Имеет неявную ссылку на экземпляр внешнего класса (
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); // Только к статическим полям
}
}
}Статические классы используют для логической группировки, когда внутренний класс не зависит от состояния внешнего.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы