内部类定义在局部时,只能访问被final修饰的局部变量。不然编译就会报错。可是如下程序中,局部变量a并没有用final修饰,为什么编译可以通过,并且可以正常打印出a的值呢?求高手解答。
- public class Outer{
- public void function(){
- int a = 3;
- class Inner{
- void method(){
- System.out.println(a);
- }
- }
- new Inner().method();
- }
- public static void main(String[] args){
- Outer j = new Outer();
- j.function();
- }
- }
复制代码 |
|