我已经读到,创建对象时会自动调用构造函数,但我想更深入地解释为什么它们在这方面与常规方法不同。任何示例或其他细节来说明其背后的推理将不胜感激。
我一直在使用 Java,并注意到构造函数没有返回类型,这与常规方法不同。我知道构造函数用于初始化对象,但我很好奇这种设计选择背后的具体原因。有人可以深入了解为什么 Java 构造函数没有返回类型吗?不允许构造函数指定返回类型的理由是什么?这种设计对语言的原则和一致性有何贡献?
根据 Java 语言规范(第 308 页),构造函数不是方法,并且它们的调用方式与方法不同。如果构造函数有返回类型,则没有逻辑位置可以访问该返回值。
调用
new MyObject()
返回一个 MyObject
实例,如果 MyObject
类的构造函数返回 int
,则它没有地方可去。您不希望它是 int x = new MyObject()
,否则您将无法访问刚刚创建的对象。