0

可能重复:
Java 默认构造函数

我正在研究 Java 练习题并遇到了这个问题:

鉴于:

class X {}

class Y {Y () {}}

class Z {z(int i ) {} }

哪个类有默认构造函数?

A.仅限 X

仅限B.Y

仅限C.Z

D. X 和 Y

E. Y 和 Z

F. X 和 Z

G. X、Y 和 Z

我想说正确的答案是 A,因为类 X 是唯一没有任何明确定义的构造函数的类。我的同行说它将是 G,因为构成默认构造函数的是当您实际更改构造函数主体中的值时。

我们已经做了一些研究,当谈到默认构造函数实际上是什么时(在这个级别),答案似乎有所不同。

谁能在这里提供答案和合乎逻辑的解释?非常感谢。

4

1 回答 1

9

我的同行说它将是 G,因为构成默认构造函数的是当您实际更改构造函数主体中的值时。

我想说你的同行在语言层面上是错误的。仅限JLS 的第 8.8.9 节 使用术语“默认构造函数”来表示“如果没有显式指定构造函数,编译器提供的构造函数”。

我希望更明确地说明这一点 - 我也希望 C# 使用相同的术语:(

于 2012-12-13T15:50:43.357 回答