我不明白为什么主要方法必须是静态的。我了解静态变量,但我很难掌握静态方法。是否存在静态方法,以便可以在两个不会相互冲突的不同类中创建两个具有相同名称的方法?
另外,我不明白为什么我不能创建静态构造函数。
谁能帮忙解释一下这个概念?
原文由 user983246 发布,翻译遵循 CC BY-SA 4.0 许可协议
我不明白为什么主要方法必须是静态的。我了解静态变量,但我很难掌握静态方法。是否存在静态方法,以便可以在两个不会相互冲突的不同类中创建两个具有相同名称的方法?
另外,我不明白为什么我不能创建静态构造函数。
谁能帮忙解释一下这个概念?
原文由 user983246 发布,翻译遵循 CC BY-SA 4.0 许可协议
我正在分享“为什么 java 构造函数不是静态的”的原因之一。
简单地说,“Java 构造函数总是非静态的”,因为,
构造函数的目的只是初始化/构造对象,并使继承成为可能。为此,我们需要使用两个有用的 java 关键字(兼非静态变量),例如 this 和 super。我们将使用“this”来初始化对象。我们/Java 将使用 super(ofcourse super()) 来调用超类构造函数,以便首先创建超对象(或 Object 类),然后创建子对象(因此继承)如果构造函数是静态的,那么我们不能使用这两个关键字(构造函数中的非静态变量)(正如我们所知,不能从静态上下文中引用非静态变量)
所以java构造函数不应该是静态的。
原文由 sreejagaths 发布,翻译遵循 CC BY-SA 3.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
Java有[静态构造函数] 静态初始化块,可以看作是“静态构造函数”:
在任何情况下,主类中唯一 必须 是静态的方法是
main
方法。这是因为它是在 没有 首先创建“主类”的实例的情况下被调用的。一种常见的技术,也是我更喜欢的一种,是快速 脱离 静态上下文:此外,静态与“名称冲突”无关。静态方法(或变量)只是一种与类型的特定实例 无关 的方法(或变量)。我建议通读 Classes and Objects Java Tutorial 和 Understanding Instance and Class Variables 部分。
快乐的编码。