"Локальный класс" в Java - это класс, объявленный внутри метода, конструктора или блока. Он доступен только в пределах области видимости, в которой был объявлен. Локальный класс имеет доступ ко всем полям и методам внешнего класса, в том числе к закрытым и защищенным (protected). Кроме того, локальный класс может реализовывать интерфейсы и наследоваться от классов, как и обычные классы.
Особенностью локальных классов является то, что они позволяют создавать классы, специализированные для определенных задач внутри метода. Это может упростить код и улучшить его читаемость. Локальный класс также может использоваться для реализации простых интерфейсов или абстрактных классов на месте.
Вот пример объявления и использования локального класса:
public class Outer {
private int outerField = 100;
public void someMethod() {
int localVariable = 42;
class LocalInner {
public void innerMethod() {
System.out.println("Outer field value: " + outerField);
System.out.println("Local variable value: " + localVariable);
}
}
LocalInner li = new LocalInner();
li.innerMethod();
}
}
В этом примере создается локальный класс LocalInner, который имеет доступ к полю outerField внешнего класса Outer и локальной переменной localVariable в методе someMethod(). Затем создается экземпляр LocalInner и вызывается его метод innerMethod().
Нужно учесть, что локальный класс не должен использовать локальные переменные, если они объявлены без модификатора final.
1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions
Tелеграмм канал: https://t.me/DEBAGanov
Мое резюме: https://github.com/DEBAGanov