黑马程序员技术交流社区
标题:
方法中的内部类访问局部变量问题。
[打印本页]
作者:
ysdolls
时间:
2014-8-19 18:11
标题:
方法中的内部类访问局部变量问题。
本帖最后由 ysdolls 于 2014-8-19 19:03 编辑
当方法被调用运行完毕之后,局部变量就已消亡了。但内部类对象可能还存在,
直到没有被引用时才会消亡。此时就会出现一种情况,就是内部类要访问一个不存在的局部变量。
所以当方法中的内部类要访问方法中的局部变量时,必须是被final修饰的
这里,谁能帮忙举个栗子,就是方法结束后,内部类要访问局部变量的例子?
public class Demo {
public static void main(String[] args) {
A a = new A();
a.method(1);
a.method(2);
}
}
class A{
int x =0;
void method(final int b){
class B{
void fun(){
System.out.println(b);
}
}
new B().fun();
}
}
复制代码
被final修饰后 不是一样生命周期随着方法的结束而结束吗?不然不能重新赋值的。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2