为什么Java中的构造函数没有返回类型?

-4 java constructor

我读过,创建对象时会自动调用构造函数,但我想更深入地解释为什么它们在这方面与常规方法不同。任何示例或附加细节来说明其背后的推理将不胜感激。

我一直在使用 Java,并注意到构造函数没有返回类型,这与常规方法不同。我知道构造函数用于初始化对象,但我很好奇这种设计选择背后的具体原因。有人可以深入了解为什么 Java 构造函数没有返回类型吗?不允许构造函数指定返回类型的理由是什么?这种设计如何有助于语言的原则和一致性?

小智 5

根据Java 语言规范(第 308 页),构造函数不是方法,并且它们的调用方式与方法不同。如果构造函数有返回类型,则没有逻辑位置可以访问该返回值。

调用new MyObject()返回一个MyObject实例,如果该类的构造函数MyObject返回一个int,则它没有地方可去。您不希望它是这样int x = new MyObject(),否则您将无法访问刚刚创建的对象。