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

クラスXは明示的に定義されたコンストラクターがない唯一のクラスであるため、正解はAと言えます。デフォルトのコンストラクターを構成するのは、コンストラクター本体内の値を実際に変更するときであるため、私のピアはそれがGになると言っています。

私たちはいくつかの調査を行いましたが、デフォルトのコンストラクターが実際に何であるか(このレベルで)に関しては、答えが異なるようです。

誰かがここで答えと論理的な説明を提供できますか?どうもありがとうございます。

4

1 に答える 1

9

デフォルトのコンストラクターを構成するのは、コンストラクター本体内の値を実際に変更するときであるため、私のピアはそれがGになると言っています。

言語レベルで、あなたの仲間はここで間違っていると思います。JLSのセクション8.8.9では、「デフォルトコンストラクター」という用語 のみを使用して、「コンストラクターが明示的に指定されていない場合にコンパイラーによって提供されるコンストラクター」を意味します。

これがより明確に記述されていることを望みます-そして、C#が同じ用語を使用していることも望みます:(

于 2012-12-13T15:50:43.357 に答える