1

In java, An outer class may be public, final, default or abstract. Why not Static like

public static class MyClass{}

4

1 回答 1

4

外部类已经是隐式静态的。

非静态嵌套类(= 内部类)意味着内部类隐式地具有对其父类的引用。

这就是为什么对于嵌套类,您可以区分静态和非静态。这对外部类没有意义。

这是一个了解静态/非静态嵌套类之间区别的示例。您应该理解为什么它在外部类中没有意义。

public class MyClass {

  private String anAttributeOfMyClass;

  private /*static*/ class MyInnerClass {

    public void foo() {
      /*
       * Here, I can access the attribute of the parent class
       * because I implicitly have a reference to it.
       * Try to make the nested class static an see the difference.
       */
      anAttributeOfMyClass.trim();
    }
  }

}
于 2013-09-11T09:56:23.540 回答