个位看看为什么结果会是这样呢?
程序代码:
/** *@veision 2011-10-5 14:24:50 *@author Heart */ class InnerClassTest { public static void main(String[] args) { Outer outer = new Outer(); outer.test(); } } class Outer { private int i = 10; private int y = 8; Outer() { System.out.println("调用Outer构造方法:outer"); } public void sayMsg() { System.out.println("Outer class!"); } class Inner { int i = 1000; Inner() { System.out.println("调用Inner构造方法:inner"); } void innerMsg() { System.out.println(">>>>>Inner class!"); sayMsg(); //访问内部类自己的成员i,也可以写成 this.i++ this.i++; //访问外部类的成员 i和y Outer.this.i++; y--; } int getI() { return i; } } public void test() { Inner in = new Inner(); in.innerMsg(); } public int getI() { return i; } public void setI(int i) { this.i = i; } }结果:
调用Outer构造方法:outer
调用Inner构造方法:inner
>>>>>Inner class!
Outer class!