内部类引用外部类方法的变量,为什么这变量必须是 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中要求的...