Sobes.tech
Назад к вопросам
Junior — Middle
100

Какие типы вложенных классов ты знаешь в программировании?

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

sobes.tech AI

В Java существуют следующие типы вложенных классов:

  1. Статический вложенный класс (static nested class)

    • Объявляется с модификатором static внутри другого класса.
    • Не имеет доступа к нестатическим членам внешнего класса напрямую.
    • Используется как обычный внешний класс, но логически связан с внешним.
  2. Внутренний класс (inner class)

    • Не статический вложенный класс.
    • Имеет доступ ко всем членам внешнего класса, включая приватные.
    • Создается в контексте экземпляра внешнего класса.
  3. Локальный класс (local class)

    • Объявляется внутри метода или блока кода.
    • Видим только внутри этого метода.
    • Может использовать локальные переменные метода, если они final или effectively final.
  4. Анонимный класс (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();

Каждый тип вложенного класса используется в зависимости от задачи и необходимости доступа к членам внешнего класса.