黑马程序员技术交流社区
标题:
方法中内部类和变量
[打印本页]
作者:
秦超
时间:
2012-3-19 22:15
标题:
方法中内部类和变量
方法中的内部类为什么不能访问方法中的变量而只能访问常量呢?
作者:
朱鹏举
时间:
2012-3-19 22:22
你说的应该是局部内部类
简单的来说是作用域的问题
就好像方法外面做的事情并不能改变方法内才定义的变量
因为你并不知道方法里面这个时候已经存在了这个局部变量了没有
而你说的情况是只有当要使用的变量是方法里面的变量,而且是在此方法内定义的类才有此限制
这个时候因为在这个内部类中方法里面的本地变量是失效的,也就是不在作用域内,所以是不能够访问的
作者:
陈从宾
时间:
2012-3-19 22:27
首先方法中定义有一个内部类,我们只是为了控制这个类的可见性,它并不是方法的一部分我们只是代码这样写,
目的是为了控制内部类的可见性,编译之后的结果,也会出现 外部类 和 内部类各自的字节码class文件,
这就说明内部类是一个独立的个体,他们就是两个类而已,他们各自都有自己的成员变量和方法。
并且方法的属性与内部类的生命周期不同. 方法执行完毕后,方法内的属性也会随之被销毁,然而如果让内部类在使用
被销毁的属性这并不合理. 解决方法就是加上final关键字.在java中, 某个属性一旦加上final关键字, 可以看作是常量,
而常量的生命周期在程序的整个执行期间
都是有效的. 所以可以引用, 不会出错.
作者:
秦超
时间:
2012-3-19 22:33
陈从宾 发表于 2012-3-19 22:27
首先方法中定义有一个内部类,我们只是为了控制这个类的可见性,它并不是方法的一部分我们只是代码这样写,
...
原来是这样~!谢了!~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2