黑马程序员技术交流社区
标题:
内部类
[打印本页]
作者:
qmayuan
时间:
2013-8-7 14:25
标题:
内部类
为什么属性名字前面加上final修饰符才能被内部类访问呢? 原理是什么~? 求大神指导!
作者:
肖博
时间:
2013-8-7 14:34
从内部类中访问局部变量,需要声明最终变量
作者:
肖博
时间:
2013-8-7 14:34
从内部类中访问局部变量,需要声明最终类型
作者:
牛牛
时间:
2013-8-7 14:53
你说的是内部类访问局部变量要加final吧~~~因为内部类在堆里,局部变量在栈里~在局部代码块里执行的代码完后栈里的局部变量会消失这样会造成内部类访问不到局部变量,所以要把局部变量放到常量池里才能访问。 建议看下final的基础视频你会明白的~
作者:
天涯海角
时间:
2013-8-7 16:22
你说的这种情况是指当内部类定义在类的局部变量的位置上时只能访问该局部final修饰的局部变量。
作者:
lengmianluocha
时间:
2013-8-7 17:57
内部类的生命周期和方法中的局部变量是不一样的,内部类也是一个类,存储在堆内存中。
只有对该类的引用消失后,内部类才会消亡。而方法中的局部变量是存储在栈内存中的,当调用结束
后,会消失。也就是内部类的生命周期超过了方法中局部变量的生命周期,内部类可能会调用已经消亡的属性,存在安全隐患,故而方法中的内部类不能访问方法中的局部变量。但是被final修饰的变量存放在哪里,网上有种说法是存在于堆内存,我不确定。另外,此文章可能对你有帮助
http://blog.csdn.net/adderking/article/details/7622983如有错误,欢迎批评指正。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2