class Outer{
private int i = 1;
private void show(){
System.out.println("primary i of Outer: i= "+ i);
}
private class Inner{
private int j = 3;
protected int k = 4;
private Inner(){}
//内部类**直接**访问外部类的**任意服务权限**的属性和方法
private void reviseOuter(){
show();
i++;
System.out.println("revised i of Outer: i= "+ i);
}
}
//外部类是内部类的顶层类,可以**使用内部类的私有构造器**,
// 通过构造的对象,**间接** 访问内部类的 **任意访问权限**的 属性和方法
public void displayToOthers(){
// 直接 j++; 或 k++; 错误
Inner inner = new Inner();
inner.reviseOuter();
System.out.println("the j of Inner: j= "+inner.j);
System.out.println("the k of Inner: k= "+inner.k);
}
}
public class Test7 {
public static void main(String[] args) {
Outer outer = new Outer();
outer.displayToOthers();
}
}
运行结果