Javaでのコンストラクターのオーバーロード:説明、利点、および例
公開: 2021-07-22目次
Javaの基礎
驚くべき動的な機能を備えたJavaは、Webアプリケーションの大規模プログラミングのための開発者の最も人気のある選択肢の1つとして浮上しています。 これは、さまざまな優れた機能を備えたユーザーフレンドリーな言語です。 すべてのオペレーティングシステムとの互換性は、豊富なAPIによって世界中で人気があります。 この言語は、強力なコミュニティサポートと優れたドキュメントサービスを提供します。 Javaには一連の堅実な開発ツールがあります。
Javaのコンストラクタ
Javaのコンストラクターは、オブジェクトの状態を初期化するために使用されます。 メソッドと同様に、コンストラクターには、オブジェクトの作成中に実行されるステートメントまたは命令のグループも含まれています。
なぜJavaでコンストラクターが必要なのですか?
ボックスについて考えてみましょう。 ボックスがクラスであると想定される場合、幅、長さ、高さなどのいくつかの変数が含まれる場合があります。 オブジェクトを作成する場合、ボックスクラスにはその寸法に定義された値はありません。 新しいオブジェクトを作成するときに、コンストラクターはクラスの変数に値を割り当てます。 値の割り当ては、デフォルトのJavaコンストラクターを使用して行うことも、プログラマーから渡されたパラメーターによって明示的に行うこともできます。
コンストラクターはいつ呼び出されますか?
new()キーワードを使用してオブジェクトが作成されるたびに、少なくとも1つのコンストラクターが呼び出されます。 このコンストラクターは、クラスのデータメンバーに初期値を提供します。 一般に、コンストラクターは、新しいオブジェクトまたはインスタンスが作成されるときに呼び出されます。
Javaでのコンストラクタのオーバーロード
同じクラスの複数のコンストラクターを定義するプロセスは、コンストラクターのオーバーロードと呼ばれます。 ただし、コンストラクターごとに異なる署名または入力パラメーターを設定する必要があります。 言い換えると、Javaでのコンストラクターのオーバーロードは、渡される引数のリストによって異なる複数のコンストラクターを持つことを1つのクラスに許可する手法です。 オーバーロードされた各コンストラクターは、クラス内で異なるタスクを実行するために使用されます。
Javaコンパイラは、パラメータリスト、パラメータタイプ、および入力パラメータの数に基づいて、オーバーロードされたコンストラクタを識別します。 したがって、オーバーロードされるコンストラクターは異なるシグニチャーを持つ必要があります。 コンストラクターのシグニチャーには、その名前とパラメーターのタイプが含まれています。 2つのクラスコンストラクターが同一のシグニチャーを持つ場合、あいまいさの問題が発生します。
コンパイラは2つを区別できないため、エラー通知を返します。 異なるシグニチャを持つコンストラクターがオーバーロードされると、コンパイラーは、オブジェクトの入力パラメーターの数に基づいて、呼び出されるコンストラクターを決定します。
コンストラクターのオーバーロードの使用
構造のオーバーロードにより、特定のクラスのオブジェクトをいくつかの方法で作成できるため、プログラマーの要件に基づいてJavaプログラムで最も一般的に使用されます。 コンストラクターのオーバーロードを使用すると、オブジェクトをさまざまなデータ型で初期化できます。
特定の値が2番目のインスタンス変数に割り当てられ、他の変数にデフォルト値が割り当てられる例として、3つのクラスインスタンス変数を持つオブジェクトが取り上げられているとします。 これは、構成クラスのさまざまなシグニチャに従って複数のコンストラクタを宣言することで実現できます。
読む: Javaキャリアコンポーネントとアーキテクチャの説明
Javaでコンストラクターのオーバーロードを実装するためのサンプルコード
Employeeクラスに3つのコンストラクターがあるプログラムを考えてみましょう。 渡された値に基づいて、3つのそれぞれが呼び出されてオブジェクトが初期化されます。
Javaでのこのリファレンスの使用
すべてのインスタンスメソッドとコンストラクターは、現在のオブジェクトを参照するために使用される「this」と呼ばれる暗黙のパラメーターを歓迎します。 現在のオブジェクトは、メソッドが呼び出されるオブジェクトです。 'this'参照を使用して、任意のコンストラクターまたはメソッド内の現在のオブジェクトを参照できます。 'this'参照は、他のオブジェクト参照と同様に、メソッドまたはコンストラクターの本体内のインスタンスメソッド、コンストラクター、および変数にアクセスするために使用できます。
'this'参照が使用されるいくつかの重要なシナリオは次のとおりです。
- パラメータの名前がインスタンス変数名と異なる場合
- 参照が現在のオブジェクトに渡され、パラメータが別のメソッドに渡される場合
- コンストラクターが別のコンストラクターから呼び出される場合。
この場合、this()参照引数は、ターゲットコンストラクターの引数と一致する必要があります。 this()関数は、コンストラクター内の最初のステートメントである必要があります。 初期化ルーチンの複雑さなどの特殊なケースでは、この関数を複数のコンストラクターでの重複コードの除去に使用できます。
世界のトップ大学からオンラインでソフトウェア開発コースを学びましょう。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを取得して、キャリアを早急に進めましょう。
Javaでのコンストラクターのオーバーロードの利点
Javaプログラムの作成中にコンストラクターのオーバーロードを利用する主な利点は次のとおりです。
- コンストラクターのオーバーロードにより、静的ポリモーフィズムを実現できます。
- クラスインスタンスは、コンストラクタのオーバーロードを使用していくつかの方法で初期化できます。
- これにより、一意のシグニチャを持つクラスで複数のコンストラクタを定義するプロセスが容易になります。
- オーバーロードされた各コンストラクターは、指定された目的のためにさまざまなタスクを実行します。
概要
- Javaでのコンストラクターのオーバーロードとは、インスタンスクラスで複数のコンストラクターを使用することを指します。 ただし、オーバーロードされたコンストラクターごとに異なるシグニチャーが必要です。
- コンパイルを成功させるには、各コンストラクターに異なる引数のリストが含まれている必要があります。
- パラメータのリストには、シーケンスと入力引数のタイプが含まれています。
- 同じパラメーターのリストを持つクラス内の2つのコンストラクターは、Javaでは実行できません。
フルスタックソフトウェア開発の詳細に興味がある場合は、upGrad&IIIT-Bのソフトウェア開発のエグゼクティブPGプログラム–フルスタック開発の専門分野をチェックしてください。これは、働く専門家向けに設計されており、500時間以上の厳格なトレーニングを提供します。プロジェクトと割り当て、IIIT-B卒業生のステータス、実践的な実践的なキャップストーンプロジェクト、トップ企業との仕事の支援。