【问题标题】:static member within nested class in Java [duplicate]Java中嵌套类中的静态成员[重复]
【发布时间】:2014-01-20 12:15:49
【问题描述】:

我阅读了java语言规范here。这里说

  1. 内部类是一个嵌套类,它没有显式地或 隐式声明为静态的。
  2. 内部类包括本地、匿名和非静态成员类。
  3. 内部类不能声明静态初始化器或成员 接口,或发生编译时错误
  4. 内部类不能声明静态成员,除非它们是 常量变量,或发生编译时错误。

但我的问题是 为什么内部/嵌套类不能有静态成员以及为什么会发生编译时错误? * 我是 Java 新手

【问题讨论】:

    标签: java class static inner-classes class-members


    【解决方案1】:

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

    【讨论】:

    • 这不是一个很好的理由...您需要一个封闭实例来创建内部类的实例。您不需要它来引用类。没有什么迫使 Java 设计者阻止内部类的静态成员,这纯粹是一种选择
    • 而且选择确实有意义,因为将静态成员放在内部类中没有好处。封闭类对他们来说也是一个好地方。
    • 最后,有这样的内部类不需要封闭实例。
    猜你喜欢
    • 2023-04-07
    • 2018-07-19
    • 2011-01-10
    • 2017-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多