日期:2014-05-20  浏览次数:20782 次

内部类引用外部类方法的变量,为什么这变量必须是 final?
class   TestStatic
{
void   fn()
{
int   a;                       //   为什么必须定义为   final   ?   若是从变量生存期考虑,那为什么不能用   static   ?用   static   会报不同的错,为什么?
class   TestInner
{
void   print()
{
System.out.println(a);
}
}
}
}

------解决方案--------------------
晕,static关键字是不能修饰方法的参数的说
为什么要final ,应该就是避免内部类的方法修改参数拉
------解决方案--------------------
1在方法体内不能存: private ,protected, public , static
也就是说void fn()方法中不能定义static.定义访问修饰符都是为了控制访问,在方法体内定义这些修饰符没有必要.
2final不是必须定义,看情况.final定义的变量不可更改,因情况而用.
------解决方案--------------------
我觉得应该是避免被修改~同意li_d_s
------解决方案--------------------
只有局部内部类才能访问外部包涵他的外围类的变量
而且这个变量必须定义成 final
这是JAVA中要求的...