Назад к вопросам
Junior — Middle
100
Какие типы вложенных классов ты знаешь в программировании?
Ответ от нейросети
sobes.tech AI
В Java существуют следующие типы вложенных классов:
-
Статический вложенный класс (static nested class)
- Объявляется с модификатором
staticвнутри другого класса. - Не имеет доступа к нестатическим членам внешнего класса напрямую.
- Используется как обычный внешний класс, но логически связан с внешним.
- Объявляется с модификатором
-
Внутренний класс (inner class)
- Не статический вложенный класс.
- Имеет доступ ко всем членам внешнего класса, включая приватные.
- Создается в контексте экземпляра внешнего класса.
-
Локальный класс (local class)
- Объявляется внутри метода или блока кода.
- Видим только внутри этого метода.
- Может использовать локальные переменные метода, если они final или effectively final.
-
Анонимный класс (anonymous class)
- Не имеет имени.
- Объявляется и создается одновременно.
- Обычно используется для реализации интерфейсов или наследования классов для одноразового использования.
Пример статического вложенного класса:
class Outer {
static class StaticNested {
void display() {
System.out.println("Static nested class");
}
}
}
Outer.StaticNested nested = new Outer.StaticNested();
nested.display();
Пример внутреннего класса:
class Outer {
class Inner {
void display() {
System.out.println("Inner class");
}
}
}
Outer outer = new Outer();
Outer.Inner inner = outer.new Inner();
inner.display();
Каждый тип вложенного класса используется в зависимости от задачи и необходимости доступа к членам внешнего класса.