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

Каким образом можно инициализировать внутренний класс внутри внешнего класса?

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

sobes.tech AI

В Java внутренний (вложенный) класс можно инициализировать внутри внешнего класса несколькими способами, в зависимости от типа внутреннего класса:

  1. Нестатический внутренний класс (Inner Class)

Для создания экземпляра нестатического внутреннего класса нужен экземпляр внешнего класса:

public class Outer {
    class Inner {
        void display() {
            System.out.println("Внутренний класс");
        }
    }

    void createInner() {
        Inner inner = new Inner(); // можно создать напрямую внутри внешнего класса
        inner.display();
    }
}

Внутри методов внешнего класса можно создать внутренний класс напрямую, так как у вас уже есть контекст внешнего объекта.

  1. Статический вложенный класс (Static Nested Class)

Такой класс можно создать без экземпляра внешнего класса:

public class Outer {
    static class Nested {
        void display() {
            System.out.println("Статический вложенный класс");
        }
    }

    void createNested() {
        Nested nested = new Nested();
        nested.display();
    }
}
  1. Анонимные и локальные классы

Их можно создавать внутри методов внешнего класса напрямую, без явного имени.

Таким образом, внутри внешнего класса вы можете создавать экземпляры внутренних классов просто, используя их конструкторы, учитывая, что для нестатического внутреннего класса экземпляр внешнего класса уже существует.