在下面,我们看到对于B类来说他的嵌套层次是:AcessMethod-〉A-〉B,那么访问方法如下:
class B {
void h() {
System.out.println("h()");
g();
f();
}
AcessMethod和A来说对B,都是透明的,直接调用。嵌套类实例化的顺序:有外到里!AcessMethod-〉A-〉B
调用代码如下:
AcessMethod am = new AcessMethod();
AcessMethod.A a = am.new A();
AcessMethod.A.B b = a.new B();
b.h();
这里很有意思的一点,’.new’语法产生了正确的作用域。
疑问:下面我们来看一下在B.h()中怎样调用A1.g()方法?
我们是否可以在B中调用A1.g()方法,在B.h()方法中原则上可以这样调用A1.g()但是A1没有实例化,所以这样是错误的,也就是在B中无法调用A1中的非静态方法了。