Назад к вопросам
Middle
83
questionbank

Что такое локальный класс и каковы его особенности?

Sobes Copilot

Получайте ответы в реальном времени

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

sobes.tech AI

Локальный класс — это класс, определенный внутри блока, например метода, конструктора или инициализатора.

Особенности локальных классов:

  • Область видимости: Доступен только в том блоке, где он определен.
  • Nicht-статический: Не может быть объявлен как static.
  • Доступ к локальным переменным: Может обращаться к final или эффективно final локальным переменным и параметрам enclosing блока.
  • Не может иметь модификаторы доступа: Нельзя использовать public, private, protected.
  • Наследует от классов и реализует интерфейсы: Может расширять другие классы и реализовывать интерфейсы.
  • Именование: Не может содержать модификатор strictfp и не может быть объявлен как enum.

Пример:

class Outer {
    void myMethod() {
        int localVar = 10; // effectively final

        class LocalClass {
            void display() {
                System.out.println("Local variable: " + localVar);
            }
        }

        LocalClass local = new LocalClass();
        local.display();
    }

    public static void main(String[] args) {
        Outer outer = new Outer();
        outer.myMethod();
    }
}