Gymterview
middle

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

Local inner class (Локальный класс) - это вложенный класс, который может быть декларирован в любом блоке, в котором разрешается декларировать переменные. Как и простые внутренние классы (Member inner class) локальные классы имеют имена и могут использоваться многократно. Как и анонимные классы, они имеют окружающий их экземпляр только тогда, когда применяются в нестатическом контексте.

Локальные классы имеют следующие особенности:

  • Видны только в пределах блока, в котором объявлены;
  • Не могут быть объявлены как private/public/protected или static;
  • Не могут иметь внутри себя статических объявлений методов и классов, но могут иметь финальные статические поля, проинициализированные константой;
  • Имеют доступ к полям и методам обрамляющего класса;
  • Могут обращаться к локальным переменным и параметрам метода, если они объявлены с модификатором final.