Java 教程说静态嵌套类是通过使用封闭类的名称来访问的,例如 new EnendingClassNameHere.StaticNestedClassNameHere()
为什么我要创建静态类的实例?有人可以解释一下吗?
最佳答案
在这种情况下,
"static"
可能会产生误导。它真正的意思是类可以独立存在。如果没有封闭类的实例,非静态内部类就不能存在。
IMO,当您开始在其所在类之外使用内部类时,您需要考虑移动它并使其成为自己的顶级类。极少数情况下,类之间的关系如此紧密耦合,以至于您需要将其保留为内部类。
在您的代码示例中:
OuterClass.StaticNestedClass nestedObject = new OuterClass.StaticNestedClass();
您正在创建 StaticNestedClass 的独立实例。
如果它不是静态的,你就无法做到这一点。您只能从 OuterClass
实例创建 StaticNestedClass()
实例。
如果将其移至其自己的 .java 文件,则可以几乎相同地对待它:
StaticNestedClass notNestedAnymore = new StaticNestedClass();
至于你真正的问题:你为什么要创建它的实例?出于与创建任何类的实例相同的原因 - 它会执行您需要的一些工作。
关于java - 为什么我想在java中创建静态类的实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8554511/