class A{
    class Ainner{
        public void set(){
        }
    }
}
class B{
    class Binner{
        A a=new A();
        A.Ainner ainner=a.Ainner();
        ainner.set();
    }
}
Binner调用set()方法是否正确????

解决方案 »

  1.   

    class A {
    class Ainner {
    public void set() {
    }
    }
    } class B {
    class Binner {
    A a = new A(); A.Ainner ainner = a.new Ainner();
                public void test() {
                 ainner.set();
                } 
    }
    }
    }
      

  2.   

    class A{
        class Ainner{
            public void set(){
            }
        }
    }
    class B{
        class Binner{
            A a=new A();
            A.Ainner ainner=a.Ainner();  //构造函数要勇new 关键字来调用
            ainner.set();                //这个语句是什么意思,方法的调用要
                                           在声明的变量处 或者方法里面 
        }
    }
      

  3.   

    方法的调用除了 声明的时候 或者在静态,对象初始化模块 之外其他的都要在肯定要在方法里面调用方法你犯的错误跟内部类没有关系
    比如下面这个类 肯定编译通不过 因为trim方法调用位置不对 跟你犯的错误一样
    class Test {
      String s ="";
      s.trim(); 
    }
      

  4.   


    public class Test { /**
     * @param args
     */
    String ss = ""; public static void main(String[] args) throws Exception {
                   new B().new Binner().test();
                   
    }}
    class A {
    class Ainner {
    public void set() {
    System.out.println("In Set!");
    }
    }
    }class B {
    class Binner {
    A a = new A(); A.Ainner ainner = a.new Ainner();
            public void test() {
             ainner.set();
            } 
    }
    }报什么错误我这个是测试过的
      

  5.   

    我的程序里,对于在A的constructor里调用Ainner里的set()就可以,但在B的Binner里调用就不行,所以我觉得是inner class的问题
      

  6.   

    A a = new A();A.Ainner ainner = a.new Ainner();这两句代码能不能放在test()里面
      

  7.   

    [email protected]
    用法。跟一般的。用法没什么两样的哦
    不要把它看得太高深了啊
      

  8.   

    A.Ainner ainner=a.Ainner();
    --------------------------一层一层剥进去就可以了啊...new a.Ainner()
      

  9.   

    A.Ainner ainner=a.Ainner();
    --------------------------一层一层剥进去就可以了啊...new a.Ainner()
    ----------------------------------------------------a.new Ainner() 才对;
      

  10.   

    class Outer
    {
       class Inner
       {
          public void fun()
      {
        System.out.println("come in");
      }
       }
       Inner getInner()
       {
           return new B();
       }
    }class Outer2
    {
      class Inner2
      {
         Outer ot=new Outer();
     Outer.Inner in=ot.getInner();
     in.fun();
      }
    }
      

  11.   

    哦  不知道对不对 还有 那个B应该是new Inner()
      

  12.   

    public class Outer
    {
       public class Inner
       {
          public void fun()
      {
        System.out.println("come in");
      }
       }
    }public class Outer2
    {
      public class Inner2
      {
         Outer ot=new Outer();
     Outer.Inner in=ot.new Inner();
     in.fun();
      }
    }//这个应该也可以