Java中嵌套类中的静态成员

Java中嵌套类中的静态成员,java,class,static,inner-classes,class-members,Java,Class,Static,Inner Classes,Class Members,我读过java语言规范 内部类是一个嵌套类,它不是显式的或非显式的 隐式声明为静态 内部类包括本地、匿名和非静态成员类 内部类不能声明静态初始值设定项或成员 接口,或发生编译时错误 内部类不能声明静态成员,除非它们是 常量变量,或发生编译时错误。 但我的问题是 为什么内部/嵌套类不能有静态成员&为什么会发生编译时错误? *我是Java新手简单地说,内部/嵌套类不能有静态成员,因为为了访问它们,需要嵌套类的实例,这会破坏静态性。这不是一个很好的理由。。。您需要一个封闭实例来创建内部类的实例。你不需

我读过java语言规范

  • 内部类是一个嵌套类,它不是显式的或非显式的 隐式声明为静态
  • 内部类包括本地、匿名和非静态成员类
  • 内部类不能声明静态初始值设定项或成员 接口,或发生编译时错误
  • 内部类不能声明静态成员,除非它们是 常量变量,或发生编译时错误。
  • 但我的问题是 为什么内部/嵌套类不能有静态成员&为什么会发生编译时错误?
    *我是Java新手

    简单地说,内部/嵌套类不能有
    静态
    成员,因为为了访问它们,需要嵌套类的实例,这会破坏静态性。

    这不是一个很好的理由。。。您需要一个封闭实例来创建内部类的实例。你不需要它来指代班级。没有什么强迫Java设计人员阻止内部类的静态成员,这纯粹是一种选择。这种选择是有意义的,因为将静态成员放在内部类中没有什么好处。封闭类对它们来说也是一个很好的地方。最后,还有一些不需要封闭实例的内部类。