Eri*_*c T 0 java constructor default-constructor
可能重复:
Java默认构造函数
我正在研究Java实践问题,并且遇到了这个问题:
鉴于:
class X {}
class Y {Y () {}}
class Z {z(int i ) {} }
Run Code Online (Sandbox Code Playgroud)
哪个类有默认构造函数?
仅A. X.
B.仅限Y.
C.仅限Z.
D. X和Y.
E. Y和Z.
F. X和Z.
G. X,Y和Z.
我会说正确的答案是A,因为类X是唯一没有任何明确定义的构造函数的类.我的同行说它会是G,因为构成默认构造函数的是你在构造函数体中实际更改值的时候.
我们已经完成了一些研究,当涉及到默认构造函数实际上是什么(在这个级别)时,答案似乎有所不同.
任何人都可以在这里提供答案和逻辑解释吗?非常感谢你.
我的同行说它会是G,因为构成默认构造函数的是你在构造函数体中实际更改值的时候.
我会说你的同伴在语言层面上是错误的.JLS的第8.8.9节 仅使用术语"默认构造函数"来表示"如果未明确指定构造函数,则由编译器提供的构造函数".
我希望更明确地说明这一点 - 我也希望C#使用相同的术语:(