看你如何使用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,不过在面向对象的概念里最好不要有所谓的全局变量的概念。@.@||~

解决方案 »

  1.   

    不好意思,我一激动,打错了!!应该是为什么在方法中定义的内部类只能访问方法中的final类型的局部变量???
      

  2.   

    哈哈,你也注意的这一点了。我但是看java的时候就被这个弄得迷惑不解。感觉好像是有什么哲学在里面。
      

  3.   

    方法中的内部类不属于方法,而方法中的变量的作用域只在方法中,所以要用方法中的变量只能用final变量
      

  4.   

    为什么在方法中定义的内部类只能访问方法中的final类型的局部变量???
    ----------------------------------------------------------------------
    因为方法中的final变量是一个编译时常量, 而内部类在编译时需要确定所有变量的值, 所以只能使用编译时常量, 即方法中的final变量.