黑马程序员技术交流社区
标题:
内部类的问题
[打印本页]
作者:
麦子609
时间:
2013-9-17 16:44
标题:
内部类的问题
本帖最后由 麦子609 于 2013-9-17 18:31 编辑
程序里的变量b为什么出错,感觉内部类越看越迷糊了
interface Test {
public void print();
}
class Inner {
int a = 3;
public void show() {
int b = 3;
Test t = new Test() {
public void print() {
System.out.println("a=" + a);
System.out.println("b=" + b);
}
};
t.print();
}
}
复制代码
作者:
落木随风
时间:
2013-9-17 17:16
内部类变量必须是final修饰的,你在int b 前面加个final 就能编译通过了,内部类和外部类的方法是同一个级别,如果不是final修饰那么内部类的成员变量,那么外部方法调用内部类结束的时候,这个变量的生命周期也就结束了,这就好出现内部类引用非法。
作者:
麦子609
时间:
2013-9-17 18:31
好的 谢啦
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2