java 内部/外部类关于外部类私有变量访问的问题
我有以下java类:
class Outer
{
    private Integer a;
    private Long b;
    class Inner
    {
        public void foo()
        { 
            System.out.println("a and b are " + a + " " + b);
        }
    }
}
当我在Outer和Outer$Inner上运行javap时,我得到以下结果:
C:\test>javap Outer
Compiled from "Outer.java"
class Outer extends java.lang.Object{
    Outer();
    static java.lang.Integer access$000(Outer);
    static java.lang.Long access$100(Outer);
}
C:\test>javap Outer$Inner
Compiled from "Outer.java"
class Outer$Inner extends java.lang.Object{    
    final Outer this$0;
    Outer$Inner(Outer);
    public void foo();
}
我有两个问题:
1)为什么java编译器生成静态方法,这些方法在外部类中采用“Outer”参数来访问其私有变量?为什么不是内部类可以通过其 this$0 成员轻松调用的实例方法?
2)为什么这个内部班级的0美元是最终的?如果不是最终的,会发生什么?
谢谢和问候。
 
					 
				 
				    		 
				    		