老毕视频里面说:局部内部类不能访问它所在的局部变量,只能访问局部常量。但为啥下面代码能访问局部变量。
class Outer1
{
private int num = 0;
public void show(int a)
{
int x = 1;
class Inner
{
public void function()
{
//System.out.println(num);//定义在外部类局部的内部类可以直接访问外部类的
//成员,因为内部类还持有外部内的引用
System.out.println(a); //也可以直接访问局部变量
System.out.println(x);
}
}
new Inner().function();
}
}
public class InnerClassDemo2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Outer1 o = new Outer1();
o.show(56);
}
}
输出结果为 : 56 ,1 |
|