java - 当类包含用户定义的参数化构造函数时,为什么编译器不提供默认构造函数?
问题描述
我是java中的新手,想知道“当类包含用户定义的参数化构造函数时,为什么编译器不提供默认构造函数?”
解决方案
当作者决定不提供任何构造函数时,编译器添加该默认构造函数是完全可以的。显然,用户并不关心该类的“如何”对象是如何创建的,他接受“默认”启动。
但是一旦作者写下一个带参数的构造函数,很明显他假设他的一个构造函数被使用了。
直截了当的推理:假设您的类有多个字段,并且用户编写的构造函数初始化所有字段。编译器生成的默认构造函数应该如何处理这些字段?!正如其中一条评论所指出的那样:将它们留在null
或可能是 0 不是一个好主意。
推荐阅读
- r - 如何在 R 中的另一个函数中运行函数?
- c# - 如何使用 itextsharp 将彩色 pdf 或图像转换为黑白或灰度 pdf?
- intellij-idea - PhpStorm 中的缩写
- linux - awk 列中选定值的总和
- python - python中的迭代
- html - 具有自定义布局的灯箱
- .htaccess - 修改 .htaccess SSL 重定向以处理 www 和无子域的最佳方法
- java - 在junits中初始化只读对象的最佳方法
- javascript - 如何检查变量是否“未定义”(不仅仅是“未定义”)
- ms-access - 尽管将 DoCmd.SetWarnings 设置为 True,但 MS Access 未提示更改