gpt4 book ai didi

java - 为什么顶级类在 Java 中不能是静态的?

转载 作者:IT老高 更新时间:2023-10-28 20:47:55 29 4
gpt4 key购买 nike

在任何地方都找不到满意的答案。

最佳答案

根据定义,所有顶级类都是静态的。

static 归结为类的实例可以独立存在。或者,反过来:如果没有外部类的实例,非静态内部类(= 实例内部类)就不能存在。由于顶级类没有外部类,它只能是static

因为所有顶级类都是静态的,所以在顶级类定义中使用 static 关键字是没有意义的。

一些可以玩的代码:

public class Foo {

public class Bar {
// Non-static innner class
}

public static class Baz {
// Static inner class
}
}

public class Example {
public static void main(String[] args) {
new Foo(); // this is ok
new Foo.Baz(); // this is ok
new Foo.Bar(); // does not compile!

Foo f = new Foo();
Foo.Bar bar = f.new Bar(); //this works, but don't do this
}
}

我把“但不要这样做”放在那里,因为它是真的丑陋的代码设计。实例内部类不应该在外部类之外可见。它们只能在外部类中使用。

关于java - 为什么顶级类在 Java 中不能是静态的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7370808/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com