public class A
{
class B
{
}
}如上定义的结构编译出错,B必须是静态的
public class A
{
class B implements ActionListener
{
public void actionPerformed(Event e)
{
}
}
}而类B 引用接口却不会错,这是为什么?

解决方案 »

  1.   

    public class A
    {
    class B
    {
    }
    }
    我在我机上编译通过了阿,我用的是JCreate,你再仔细看看别处
      

  2.   

    public class A
    {
    class B
    {
    void print()
    {
    System.out.println("B print");
    }
    }public static void main (String args[])
    {
    B b=new B();
    b.print();
    }
    }
      

  3.   

    B b = new A().new B();
    建议看一下内部类的语法
      

  4.   

    内部类可以是 static ,
    public class A{
      static class B{
        static class C{
          static class D{
          }
        }
      }
    }但是如果说 D 要成为 static ,前提是 C , B 都是 static public class A{
      class B {
        class C{
          class D{
             public D(){
                new Exception().printStackTrace();
             } 
          }
        }
      }
    }如果都不是 static 创建时则要  new A().new B().new C().new D(); 才能创建 D .因为 D 和外面的类实例之间有引用关系,JVM 运行时生成 , 运行一下后面一个看看控制台打印出来的>