黑马程序员技术交流社区
标题:
局部内部类又一题
[打印本页]
作者:
孟江
时间:
2013-6-10 09:36
标题:
局部内部类又一题
为什么局部内部类不可以访问他所在的局部中的变量
作者:
shiweiCao
时间:
2013-6-10 10:42
不是final的局部变量,你的方法结束了就没了。
但是你的内部类却不是和你的方法同时执行的,比如实现ActionListener,
当你事件发生的时候才会执行,这时你的方法已经结束了,ActionListener到哪里去找这个局部变量呢?
其实就是一个生命周期的问题,局部的变量, 在方法执行完了之后就施放了,所以访问不了. 走不到内部类的地方去.
黑马云青年回复
作者:
张源锋
时间:
2013-6-10 13:25
局部变量存放在栈内存中,只要方法一结束就没有了,而局部内部类存放在堆内存中,方法结束它也不一定马上消失,而是等GC回收,也就是局部内部类的生存周期比局部变量的生存周期要长,不可能让一个成员去访问一个已经消失的变量。如果你想让局部内部类的访问局部变量,就必须把变量用final来修饰。
作者:
袁梦希
时间:
2013-6-12 19:05
尽量把问题提的详细一点 这样方便大家交流
作者:
袁梦希
时间:
2013-6-12 19:05
楼主你好 如果问题已经解决 请把帖子的类型改为已解决 然后会给你发几个粽子吃
加油哦
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2