class Demo_Package {
//测试为什么局部类使用局部变量时,要把局部变量声明成final?
public static void main(String[] args){
Outer o = new Outer();
o.method();
}
}
class Outer {
public void method() {
int num = 10;
class Inner {
public void print(){
System.out.print(num);
}
}
Inner i = new Inner();
i.print();
}
}
因为只有把变量放在常量池,那么在类被释放的时候.这个变量才能保存.才可以继续使用.但是在JDK1.8这个特性改了下常量池机制, 把这种只改变一次的变量自动视为常量.所以1.8就算不定义final也可以调用 |
|