次の点に注意してください:
クラスにプライベート コンストラクターがあると、デフォルトの引数なしのコンストラクターを提供しないようコンパイラーに指示します。
プライベート コンストラクターはインスタンス化できません。
this() は、コンストラクター内の最初のコメント化されていないステートメントでなければなりません。コメントはどこにいても許可されます。
Java におけるコンストラクターのオーバーロードとは、インスタンス クラスで複数のコンストラクターを使用することを指します。ただし、オーバーロードされた各コンストラクターには異なるシグネチャが必要です。コンパイルを成功させるには、各コンストラクターに異なる引数リストが含まれている必要があります。
メソッド シグネチャが異なる限り、同じクラス内に複数のコンストラクターを含めることができます。メソッドをオーバーロードする場合は、メソッド名とパラメータ リストが一致する必要があります。コンストラクターの場合、名前はクラスの名前と同じである必要があるため、常に同じになります。コンストラクターをオーバーロードするには、異なるパラメーターが必要です。
上記では、コンストラクターの 1 つが単一の int パラメーターを受け取ります。もう 1 つは int と String を受け取ります。これらのパラメーター リストは異なるため、コンストラクターは正常にオーバーロードされます。
ただし、ここで問題があります。少し重複する部分があります。私たちが本当に望んでいるのは、最初のコンストラクターが
で 2 番目のコンストラクターを呼び出すことです。
2 つのパラメータ。
コンストラクターチェーン
それは、オーバーロードされたコンストラクターが相互に呼び出しを行うときです。一般的なテクニックの 1 つは、
をそれぞれ持つことです。
コンストラクターは、すべての作業を実行するコンストラクターに到達するまで、パラメーターを 1 つ追加します。
結果: 15 16 6
main() メソッドは、1 つのパラメーターを指定してコンストラクターを呼び出します。そのコンストラクターは 2 番目のハードコーディングされた値を追加し、2 つの
を指定してコンストラクターを呼び出します。
パラメータ。そのコンストラクターは、ハードコーディングされた値をもう 1 つ追加し、コンストラクター
を呼び出します。
3 つのパラメータを使用します。 3 つのパラメーターのコンストラクターはインスタンス変数を割り当てます。
コンストラクターチェーンは、コンストラクターを呼び出したい場合に使用されます
別のコンストラクター内。
オーバーロードとチェーンの複合的な利点
コンストラクターのオーバーロードとチェーンを組み合わせることで、コードの柔軟性、効率性、保守性が向上します。オーバーロードによりさまざまな初期化シナリオをサポートできる一方、チェーンにより共有ロジックを一元化して冗長性を削減できます。
以上がコンストラクターのオーバーロードとコンストラクターの連鎖。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。