ホームページ >Java >&#&チュートリアル >Javaのデフォルトコンストラクタとユーザー定義コンストラクタの違いは何ですか?

Javaのデフォルトコンストラクタとユーザー定義コンストラクタの違いは何ですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-22 07:13:13828ブラウズ

What's the Difference Between Default and User-Defined Constructors in Java?

Java のデフォルト コンストラクター

Java では、他のコンストラクターが定義されていない場合、デフォルト コンストラクターが自動的に生成されます。これは、フィールドをデフォルト値に初期化する引数のないコンストラクターです。次のコードは、デフォルトのコンストラクターを定義していません:

public Module() {
   this.name = "";
   this.credits = 0;
   this.hours = 0;
}

これは、引数を取るユーザー定義のコンストラクターです。デフォルトのコンストラクターは次のようになります:

public Module() {}

または、フィールド型がプリミティブの場合:

public Module() {
   super();
   this.name = null;
   this.credits = 0;
   this.hours = 0;
}

主な違い

プライマリデフォルトのコンストラクターとユーザー定義のコンストラクターの違い

  • デフォルトのコンストラクターは引数を必要としませんが、ユーザー定義のコンストラクターは引数を持つことができます。
  • デフォルトのコンストラクターは、フィールドをデフォルト値 (例: オブジェクトの場合は null、0) に自動的に初期化します。数値プリミティブの場合)、ユーザー定義のコンストラクターではカスタムの

デフォルトのコンストラクターとコンストラクターなし

コンストラクターがまったくないことは、デフォルトのコンストラクターがあることと同じです。コンストラクターがない場合、Java コンパイラーは、引数もフィールド初期化も行わないデフォルトのコンパイラーを自動的に生成します。

注:

  • コンストラクターが定義されている場合クラスでは、デフォルトのコンストラクターは生成されません。
  • デフォルトのコンストラクターは暗黙的にのみ作成できます。明示的に。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。