编程语言
首页 > 编程语言> > 为什么外部类在Java中不是静态的?

为什么外部类在Java中不是静态的?

作者:互联网

这个问题已经在这里有了答案:            >            Why are you not able to declare a class as static in Java?                                    14个
在Java中,外部类可以是public,final,default或abstract.
为什么不像静态

公共静态类MyClass {}

解决方法:

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

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

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

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

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();
    }
  }

}

标签:nested-class,java,class,static
来源: https://codeday.me/bug/20191009/1878328.html