看你如何使用final变量了
final变量如果使用在某个函数中,那么他的生命周期将至多为该函数的生命周期。
如果成为一个class或者interface的field,概念就不太一样了,一般在此应用中会与static合用(interface中fields自动加上static)代表一种类型的全局作用域范围,只要还拥有该类或者接口的对象,field就不会消失。第二个问题有点奇怪,不是最明白意思,
一个方法中的局部变量完全可以访问定义该方法的class中的field而无关乎其是任何修饰(包括private,protected,public,final,static),但是当类field与局部变量名称冲突时,希望引用类field就必须加上this关键字(this.field),如果是static field就必须引用class name(ClassName.field)来调用所谓的全局field,不过在面向对象的概念里最好不要有所谓的全局变量的概念。@.@||~
final变量如果使用在某个函数中,那么他的生命周期将至多为该函数的生命周期。
如果成为一个class或者interface的field,概念就不太一样了,一般在此应用中会与static合用(interface中fields自动加上static)代表一种类型的全局作用域范围,只要还拥有该类或者接口的对象,field就不会消失。第二个问题有点奇怪,不是最明白意思,
一个方法中的局部变量完全可以访问定义该方法的class中的field而无关乎其是任何修饰(包括private,protected,public,final,static),但是当类field与局部变量名称冲突时,希望引用类field就必须加上this关键字(this.field),如果是static field就必须引用class name(ClassName.field)来调用所谓的全局field,不过在面向对象的概念里最好不要有所谓的全局变量的概念。@.@||~
解决方案 »
- ArrayList排序问题
- 学习JAVA,各位大虾推荐几本好书
- JAVE-EE 5-SDK跟J2EE SDK 1.4的区别?
- 正则表达式问题
- 在一个由Jbx向导生成的Application工程面,添加一个JPane,再往这个JPane里再添加一个JButton,对它调用JButton.setLocation,在程序运行
- 关于对象锁的疑问
- Java里是怎么样实现打印报表的呢,这里这么多高人,没有愿意指点一下吗,都问了好几天了。。。
- 为什么setLayout(new BorderLayout()),为有这样的问题?
- 哪位朋友有RSA加密算法的例子?
- java新人求教,面板中添加图片
- 请问下像VC一样的控制台程序的标准输入语句是什么?
- 很简单的问题:read()能读出哪些?
----------------------------------------------------------------------
因为方法中的final变量是一个编译时常量, 而内部类在编译时需要确定所有变量的值, 所以只能使用编译时常量, 即方法中的final变量.