【问题标题】:Top level classes cannot be static in java but inner classes can be why ? [duplicate]java中的顶级类不能是静态的,但内部类可以是为什么? [复制]
【发布时间】:2013-10-04 11:17:58
【问题描述】:

这个问题也曾在这里提出过。但我没有发现它有帮助。
它只是基于一个假设。请对此提出一些见解。

【问题讨论】:

  • 也许你假设答案应该比它更复杂。顶级类实际上已经是静态的。
  • 它“只是基于”什么“假设”?你在说什么?

标签: java


【解决方案1】:

static classes 表示没有引用外部类的实例。

顶级类不能引用外部类,因此在某种程度上它们都是静态类。

您不能将它们设为静态的原因是没有其他选项,并且顶级类的语法在嵌套类选项出现之前就已确定。

【讨论】:

  • 我看不出“外部类的语法......”与它有什么关系。 'static' 不会添加任何内容,因此不合法。
  • @EJP 在很多情况下允许使用冗余修饰符。所有嵌套的enum 都是静态的,允许将其添加为修饰符。
  • 没有。不正确。 “静态”表示不引用外部类的实例
  • @DavidWallace 感谢您的澄清。
  • 我看到你已经对第一句话进行了编辑,所以现在 +1。
【解决方案2】:

你的问题没有任何意义。内部类是否是静态的基本上意味着,是与外部类的特定实例相关联的内部类的实例。如果一个类不是内部类,那么说它是静态的还是非静态的并没有任何意义。

【讨论】:

    猜你喜欢
    • 2013-09-15
    • 1970-01-01
    • 2015-09-14
    • 1970-01-01
    • 2012-05-30
    • 2012-05-26
    • 2010-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多