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

问题描述 投票:0回答:1

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

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

java constructor
1个回答
0
投票

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

调用

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

© www.soinside.com 2019 - 2024. All rights reserved.