在教材中有这么一句话:在方法中定义的类可以使用该方法中的局部变量(非常量),但必须是在程序运行期间。  但是有些资料中又明确指出定义在方法中的类是不能使用局部变量的(非常量)。
请问到底什么是“在程序运行期间”? 
如何使用局部变量?

解决方案 »

  1.   

    楼主看看下面这段程序就明白了
    public class Test{
       public void test(){
         int i=0;
         class Inner{
             void test2(){
             i=4;
             }
          }
       }
       public static void main(String args[]){
            Test test=new Test();
            test.test();
       }
    }
    上面这段程序编译是无法通过的,因为内部类引用了方法test中的i,而i不是声明为final,是无法引用的,你改成final int i=0;即可
      

  2.   

    老大, final是什么呀,能改吗?,你自己适适行吗?
      

  3.   

    不明白楼上的什么意思?final怎么了?
      

  4.   

    我举的例子不够恰当,确实不能修改,但不改成final你连使用都无法使用
    在方法的内部类中要使用方法中的局部变量(包括方法的参数),必须声明为final
      

  5.   

    楼主的问题,可在此帖找到答案
    http://community.csdn.net/Expert/topic/4668/4668977.xml?temp=.6765253