标题: 内部类问题 [打印本页] 作者: Huan220_欢 时间: 2015-6-23 12:52 标题: 内部类问题 毕老师讲过内部类定义在局部位置上,可以直接访问外部类中的成员。
同时可以访问所在局部中的局部变量,但必须是被final修饰的。
可是我如下写出的代码也可以运行啊!是不是哪里我理解错了?请各位大神帮我顺顺
class Outer{
int num = 3;
void method( int y){
int x = 9;
class Inner{
void show(){
System.out.println("show..." + x + "," + y);
}
}
Inner in = new Inner();
in.show();
}
}
class InnerClass{
public static void main(String[] args){
new Outer().method(4);
}
}
运行结果为:show...9,4 作者: guiqulaixi 时间: 2015-6-23 13:43
打印是没问题,你试试修改呢?在内部类里面修改方法的局部变量,你就会发现编译器报错了,实际上编译器编译时偷偷帮你加了final,不过 这很容易误导你,让你看起来像是可以访问局部变量似的作者: Huan220_欢 时间: 2015-6-23 19:23