java - 构造函数与 Java 中的普通方法有何不同?

标签 java oop constructor

我在 Spring 教程中阅读了以下有关方面的内容。

Unlike constructors in most other OOP languages, Java constructors are different from normal methods.

这是真的吗?如果是,为什么以及如何?我了解构造函数与普通方法的区别和重要性。但是,C++ 中的这种差异与 Java 中的差异相同吗?或者,对于 Java 中的这种差异还有其他调整吗?

我的观点集中在与 C++ 等其他 OOP 语言的比较上。

A是对Java中构造函数和普通方法区别的解释。说B是对任何其他OOP语言中构造函数和普通方法之间差异的解释。我想知道A和B之间的区别(如果有的话)?

最佳答案

构造函数将与类具有完全相同的名称,并且根本没有任何返回类型,甚至没有 void。构造函数对于设置某些成员变量的初始值非常有用。

构造函数和方法在签名的三个方面有所不同:修饰符、返回类型和名称。与方法一样,构造函数可以具有任何访问修饰符:public、protected、private 或 none(通常称为包或友好)。与方法不同,构造函数只能采用访问修饰符。因此,构造函数不能是抽象的、最终的、 native 的、静态的或同步的。

返回类型也有很大不同。方法可以有任何有效的返回类型,也可以没有返回类型,在这种情况下,返回类型指定为 void。构造函数没有返回类型,甚至没有 void。

关于java - 构造函数与 Java 中的普通方法有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29845129/

相关文章:

c++ - 构造函数初始化列表中的循环依赖

javascript - new F 和 new F() 有什么不同吗?

java - 如何将 Git 的 fork 存储库包含到我的 eclipse java 项目中?

java - 使用 byte-buddy (System.nanoTime()) 拦截和更改静态本地方法的返回值

C#:通过继承隐藏实现可以吗?

c# - Javascript "var obj = new Object"在 C# 中等效

Java getElapsedTime 在简单秒表中,返回枚举

java - 如何使用 YUI Compressor 压缩多个 js 文件并保存到单个文件

python - 在 `self` 语句中使用 `with` 作为上下文

继承中的 C++ 复制构造函数