A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© tintick 黑马帝   /  2011-10-4 23:10  /  2253 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

方法体内的内部类为什么只能访问所在方法的final变量?

6 个回复

倒序浏览

回复 沙发 的帖子

又是你  再次谢过了   而用final修饰的变量不会随之消失,是这样吧   多谢   你也是焦作的?这么巧 我沁阳
[ 本帖最后由 tintick 于 2011-10-04  23:25 编辑 ]
回复 使用道具 举报
黑马网友  发表于 2011-10-4 23:35:42
藤椅

回复 板凳 的帖子

:L 刚才晕了  碰到的是我的名字 然后显示河南焦作 。
回复 使用道具 举报
黑马网友  发表于 2011-10-5 12:18:37
板凳
内部类的生命周期与一般变量的生命周期是不一样的,通常来说,内部类的生命周期要长些,所以,内部类是不能访问一般变量的。
回复 使用道具 举报
黑马网友  发表于 2011-10-5 19:49:24
报纸
一个类中的内部类,其实这个内部类相对这个类就和以他方法和属性一样的。只是内部类的生命周期和这个类的属性生命周期是不同的。在内存中,类的属性会被分配到栈中的。当调用结束的时候就会退栈,也就是说在内存中这个属性就消失了。内部类也是类,只用在内存中对他的引用消失了才会死亡的内部类,这个时候内部类调用类中已经结束调用的属性是不可能的。也就是说局部类的生命周期超过了类的局部变量。解决的办法就是在局部变量前加上final,这样类中属性就会被分配在堆内存中,生命周期是和工程的生命周期一样了,其内部类就可以调用了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马