黑马程序员技术交流社区
标题:
为甚么内部类访问的局部变量要加final?
[打印本页]
作者:
面具猴
时间:
2014-10-14 17:16
标题:
为甚么内部类访问的局部变量要加final?
本帖最后由 面具猴 于 2014-11-18 09:37 编辑
为甚么内部类访问的局部变量要加final,还有内部类访问外部类的成员变量都有什么限制吗?
作者:
Quasimodo
时间:
2014-10-14 20:12
因为局部变量在函数执行完的时候就会消失,但是内部类只有有人还在引用它,它就会一直存在下去。所以内部类的生命周期要大过所在函数的局部变量。这样内部类访问成员变量的时候,成员变量已经消失了,就会出错了。所以要给成员变量加final修饰。
内部类访问外部类的成员变量都有什么限制,这个倒目前为止我也不知道是不是有啥限制。。。既然内部类能直接访问外部类中的成员,包括私有的。那么应该不会有什么限制吧。这只是乱猜的哦
作者:
戏言丶
时间:
2014-10-15 00:07
其实就是周期问题,还有就是保持值的一致性
作者:
mmppp
时间:
2014-11-26 17:14
本帖最后由 mmppp 于 2014-11-26 17:16 编辑
朋友 ,因为内部类,也是类,它的生命周期长。而局部变量的话,是随着方法的加载而加载,方法运行完以后,就会消失。这样你的类中就出现了没有定义的参数,就会出现错误。所以要用final修饰,这样这个变量就成为了常量,就随着类的加载而加载,这样的话,就不会出现生命周期不同的问题。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2