ホームページ > Java > &#&チュートリアル > Java はいつデフォルト コンストラクターを生成しますか?

Java はいつデフォルト コンストラクターを生成しますか?

Patricia Arquette
リリース: 2024-12-31 20:21:10
オリジナル
951 人が閲覧しました

When Does Java Generate a Default Constructor?

Java デフォルト コンストラクターの包括的な理解

Java では、デフォルト コンストラクターは、重要な役割を果たす暗黙的に生成される引数なしのコンストラクターです。クラスのコンストラクターを明示的に定義しない場合。ただし、一般的な考えに反して、他のコンストラクターを定義すると、デフォルト コンストラクターの作成が無効になります。

どちらの例もデフォルト コンストラクターではありません

質問で提供されたコンストラクターはいずれもデフォルト コンストラクターではありません両方とも引数を持っているため、デフォルトのコンストラクター。デフォルトのコンストラクターには引数はありません。

デフォルト コンストラクターの定義と生成

クラス内に他のコンストラクターが定義されていない場合、デフォルト コンストラクターは自動的に生成されます。クラスと同じアクセス修飾子を持ち、インスタンス変数をそれぞれのデフォルト値に初期化します。

  • 数値型 (int、long、float、double) は 0 に設定されます
  • Boolean型は false に設定されます
  • 文字列などのオブジェクト型は、 null

たとえば、クラス Module に名前 (String)、クレジット (int)、時間 (int) の 3 つのフィールドがある場合、デフォルトのコンストラクターは次のようになります。

public Module() {
  this.name = null;
  this.credits = 0;
  this.hours = 0;
}
ログイン後にコピー

他のコンストラクターを定義することの影響

少なくとも 1 つを定義するとクラスのコンストラクターの場合、デフォルトのコンストラクターは生成されません。これは、デフォルトのコンストラクターは本質的にプレースホルダーであり、独自のコンストラクターを提供すると冗長になるためです。

追加の説明

技術的にはそうではありません。フィールドをデフォルトで初期化するコンストラクター。ただし、コンストラクターはクラスのエントリ ポイントであるため、その有無はデフォルトの初期化に間接的に影響します。

以上がJava はいつデフォルト コンストラクターを生成しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート