Встречается на собеседованиях • сегодня
В чем разница между вложенным и внутренним классом в Java
Вложенный (static nested) класс объявляется с модификатором static внутри другого класса. Он не имеет доступа к нестатическим членам внешнего класса и может существовать без экземпляра внешнего класса.
Внутренний (inner) класс - это нестатический вложенный класс. Он имеет доступ ко всем членам внешнего класса, включая приватные, но требует экземпляр внешнего класса для создания.
Пример:
java
class Outer {
private int x = 10;
static class Nested { // Вложенный
void show() {
// System.out.println(x); // Ошибка - нет доступа к нестатическому x
}
}
class Inner { // Внутренний
void show() {
System.out.println(x); // Доступ к x есть
}
}
}
// Использование:
Outer.Nested nested = new Outer.Nested(); // Без экземпляра Outer
Outer outer = new Outer();
Outer.Inner inner = outer.new Inner(); // Требуется экземпляр Outer
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы