java - 为什么我想在java中创建静态类的实例?

标签 java static

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/

相关文章:

ios - 清除结构/类中的静态变量

c# - 静态类分配

java - 如何将组件与 SpringLayout 居中对齐

java - 如何更改 IntelliJ 中的构造函数模板

c++ - 命名空间中的静态变量与非静态变量

java - Java 中的 C 静态变量行为

java - java webapp配置策略

Java servlet 范围

java - 如何在 WebSphere 8.5 Liberty Profile 中定义自定义 DataStoreHelper

java - 从多个线程调用时Thread.sleep()如何工作