java - 给构造函数命名有什么意义

标签 java c++ constructor abstraction

<分区>

多年来,我一直在使用 C++ 和 Java。我似乎无法理解的一件事是,为什么我们需要为类的构造函数提供名称?例如,如果我必须在 C++/Java 中定义一个类 FOO,我将被迫提供 FOO 作为构造函数名称。但是,由于从未显式调用构造函数,编译器强制我为它提供一个名称到底有什么意义。

抽象范式要求我们向程序员隐藏不必要的细节。这就是构造函数没有返回类型的原因,因为它已经明确定义了构造函数必须返回的内容。本着同样的精神,为什么我们不能给所有类的构造函数一个通用名称——例如任何有意义的名称,比如 initialize() 或者什么都没有,只是参数 ( [arg [,arg]] )

我希望,我能够表达自己。如果有人有任何明确的答案,请告诉我。

最佳答案

在 C++ 中,构造函数没有名称(C++03 12.1),但是由于构造函数本质上被定义为函数,因此以某种方式命名它们是合乎逻辑的。
将它们命名为类名以外的任何名称都会添加新的关键字,因此最终它们被命名为与类名相同。
简而言之,这是一个合乎逻辑的决定,避免了新关键字,同时确保了直观性。

关于java - 给构造函数命名有什么意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10891761/

相关文章:

templates - Dart 聚合物 'does not have default constructor'

java - 在应用计费和替换公钥中。这有什么大不了的?

java - JPasswordField 验证

JAVA JNI C 调试器

c++ - 使用 boost::program_options 指定多个标志

Java:修改和访问在构造函数中初始化的变量

具有自签名证书的 Java SSL 连接,无需将完整的 keystore 复制到客户端

c++ - 通过 WiFi 从 UDP 套接字读取总是超时

c++ - 指向数组元素的成员指针

java - 这里调用父类(super class)构造函数的是什么?