* 如果方法中的内部类要访问方法中的局部变量必须要把变量声明为final。
* 因为在方法中定义内部类,只是能让我们看见这个类,它并不是方法的一部分, 这样写是便于控制内部类的可见性。当运行javac编译后,也会出现外部类和内部类各自的字节码class文件。这说明内部类是个独立的个体,他们就是两个不同的类,有各自的成员变量和方法。而且内部类和方法中的属性的生命周期也是不同的,方法在执行完毕后,方法中的变量也会随之被销毁,所以内部类就不可能访问到方法中的变量,所以内部类要访问到方法中的变量就必须把变量修饰 为final的, 因为被final修饰的变量就可以看做是常量,而常量的生命周期是在程序的整个执行期间 ,这样内部类就可以访问方法中的变量了。
|