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



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



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



• Видны только в пределах блока, в котором объявлены;

• Не могут быть объявлены как private/public/protected или static;

• Не могут иметь внутри себя статических объявлений методов и классов, но могут иметь финальные статические поля, проинициализированные константой;

• Имеют доступ к полям и методам обрамляющего класса;

• Могут обращаться к локальным переменным и параметрам метода, если они объявлены с модификатором final.