interface Inter {
public abstract void function();
}
// 外部类
class Outer {
public Inter method() {
final int i=10;//局部变量i在栈中存在,当method()方法执行结束被销毁
//加final目的是为了延长i的生命周期
//加final修饰i的i不放在栈中,放在常量池中
//function才能访问i
class InnerImpl implements Inter {
public void function() {
System.out.println(i);
}
}
return new InnerImpl();
}
}
class FinalVariable {
public static void main(String[] args) {
Outer out = new Outer();
Inter it = out.method();
it.function();
}
} |
|