class Outer {
  private int i;
  public class Inner {
public void doStuff() {
i++;
}
  public int getI() {
   return i;
}
}
}
public class TestInner {
public static void main(String[] args) {
Outer.Inner oi=new Outer().Inner();
oi.doStuff();
System.out.println(oi.getI());
}
}
请问这个程序正确吗?输出结果是什么?并做分析.谢谢

解决方案 »

  1.   

    错误
    内部类的实例是通过所在的类的实例且通过new产生的
    Outer.Inner oi=new Outer().new Inner(); 
      

  2.   

    不正确,你要生成内部类的对象,需要先生成外部类的对象class Outer { 
      private int i; 
      public class Inner { 
    public void doStuff() { 
    i++; 

      public int getI() { 
      return i; 



    public class TestInner { 
    public static void main(String[] args) { 
    Outer.Inner oi=new Outer().new Inner(); 
    oi.doStuff(); 
    System.out.println(oi.getI()); 

    } 这里的oi是内部类Inner的对象,调用其doStuff()方法,i++,输出,结果为1(注:如果没有为int变量赋值,jvm会自动赋值为0,所以i++后输出为1)