Противоречивое утверждение относительно местного класса, какой из них является правильным?
Я новичок в Java и пытаюсь изучить концепцию локального класса. В настоящее время я читаю главу о локальных классах в документации Oracle для официальной Java. В этой главе я встречал два утверждения, которые, кажется, противоречат друг другу. Может ли кто-нибудь знающий помочь мне, какое утверждение является правильным? Или они оба верны, просто мое понимание концепции еще не пришло.
Локальный класс имеет доступ к локальным переменным. Однако локальный класс может обращаться только к локальным переменным, которые объявлены как final.
Локальные классы не являются статичными, потому что они имеют доступ к членам экземпляра вмещающего блока.
https://docs.oracle.com/javase/tutorial/java/javaOO/localclasses.html
1 ответ
Эти утверждения не противоречат друг другу и оба являются правильными.
Члены экземпляра (упомянутые во втором выражении) не являются локальными переменными (локальные переменные - это переменные, которые являются локальными для некоторого метода или блока кода, в то время как переменные экземпляра принадлежат экземпляру класса и могут быть доступны из любого нестатического метода этого класс), поэтому к ним могут обращаться локальные классы независимо от того, являются ли они окончательными или нет.