【code=Java】class InnerTest {
InCls ic = null; int k = 3; public InnerTest() {
} public InnerTest(InCls ic) {
this.ic = ic;
} public int add(int a, int b) {
System.out.println("外部类的add方法");
return a + b;
} public int add(int a, int b, int c) {
return ic.add(ic.add(a, b), c);
} class InCls {
int m = add(2, 4); int h = InnerTest.this.add(10, 4); public InCls() {
} public int add(int a, int b) {
System.out.println("内部类的add方法");
return a * b;
}
}
}public class InnerCls { public static void main(String args[]) {
int a = 3, b = 6, c = 5;
InnerTest it = new InnerTest();
InnerTest.InCls iic = it.new InCls();
InnerTest intt = new InnerTest(iic);
System.out.println(iic.m); }
}【/code】

解决方案 »

  1.   

    说错了   应该是内部类的add方法
    外部类的add方法
    8
      

  2.   


    class InnerTest {
    InCls ic = null; int k = 3; public InnerTest() {
    } public InnerTest(InCls ic) {
    this.ic = ic;
    } public int add(int a, int b) {
    System.out.println("外部类的add方法");
    return a + b;
    } public int add(int a, int b, int c) {
    return ic.add(ic.add(a, b), c);
    } class InCls {
    int m = add(2, 4); int h = InnerTest.this.add(10, 4); public InCls() {
    } public int add(int a, int b) {
    System.out.println("内部类的add方法");
    return a * b;
    }
    }
    }public class InnerCls { public static void main(String args[]) {
    int a = 3, b = 6, c = 5;
    InnerTest it = new InnerTest();//这句话,没什么特殊的
    InnerTest.InCls iic = it.new InCls();//重点是这句,new InCls时,除了调用构造函数,InCls的m和h变量也被同时初始化了,
    //其中,m=add(2,4),调用的是InCls的add方法,所以先打印"内部类的add方法",m=8
    //其中,h = InnerTest.this.add(10, 4);执行的是InnerTest的add方法,h=14
    //需要注意的是,因为是内引类,要引用外部包含类的同名方法(如果不同名就无所谓了),需要是用”类名.this“来指定。


    InnerTest intt = new InnerTest(iic);//这句也没什么特殊的。
    System.out.println(iic.m); }
    }
      

  3.   

    内部类粗略的看了一下,学习ing