【发布时间】:2013-08-03 19:27:41
【问题描述】:
为什么我们不能创建外部的静态类。我在这个社区阅读了这个问题的答案,但我没有得到完美的答案。有人能帮我一个准确的答案吗
static class A
{
void display()
{
System.out.println("This is a static class");
}
}
【问题讨论】:
-
因为java外层的静态类是没有意义的。你对它没有的外部静态类有什么期望?
-
我不会因为 Java 中缺少这样的东西而苦恼。
-
因为外部类本身是静态的,你不能定义一个非静态的外部类。所以外部类有
static修饰符是没有用的。 -
我感受到你的痛苦——在我看来,有一个
static类暗示所有方法和所有子类都是static是有意义的,就像final类一样。 -
“静态”方法或字段不是由实例处理的,而是直接与类相关联。类似地,“静态”(内部)类的实例不与包含类的实例相关联(为了寻址包含范围的成员),而是直接与包含类相关联。当应用于外部类时,这个概念是没有意义的,因为没有“包含”范围可以链接。术语不会暗示类的所有成员都是
static——静态内部类不是这种情况,也不应该是外部类。