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

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

Sobes Copilot

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

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

sobes.tech AI

Локальный класс — это класс, объявленный внутри блока кода, обычно метода.

Особенности:

  • Область видимости: Виден только внутри блока, где объявлен.
  • Не имеет модификаторов доступа (public, private, protected).
  • Нельзя объявить как static.
  • Может быть абстрактным или final.
  • Имеет доступ к членам включающего класса, включая приватные.
  • Может использовать final или effectively final локальные переменные из enclosing scope.
  • Создание объекта происходит внутри блока кода.

Пример:

public class OuterClass {

    private String outerField = "Внешнее поле";

    public void someMethod() {
        final String localVariable = "Локальная переменная"; // эффективно final

        class LocalClass { // Локальный класс
            public void printValues() {
                System.out.println(outerField);    // Доступ к полю внешнего класса
                System.out.println(localVariable); // Доступ к локальной переменной
            }
        }

        LocalClass localObject = new LocalClass();
        localObject.printValues();
    }

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