【面试重点】局部内部类
class Outer { public int num = 10; public void fun() { final int num = 10; class Inner { public void show() { System.out.println(num); } } Inner in = new Inner(); in.show(); } }
如果局部内部类访问了局部变量,那么 局部变量必须是final
原因:局部变量会随着方法执行完毕而消失,而对象中有访问局部变量,对象不会消失,所以局部变量必须 final
上面程序反编译之后可以看到:会变成System.out.println(10);
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号