Javaでのコンストラクターのオーバーロードとは
公開: 2022-11-16Web アプリケーションの需要は世界的に増加しています。 Java は、大規模なプログラミングを必要とする開発者にとって好ましい選択肢として浮上しています。 Java の人気は、その動的な機能、使いやすいインターフェイス、および主要なオペレーティング システムとの高い互換性に依存しています。 この言語には豊富な API があります。 Java のもう 1 つの利点は、堅牢なコミュニティ サポートと優れたドキュメント サービスを提供することです。 Java が提供する一連の開発ツールを忘れないでください。
Javaのコンストラクターとはどういう意味ですか?
Java のコンストラクターは、主にオブジェクトの状態を初期化するために使用されます。 メソッドと同様に、コンストラクターは、オブジェクトの作成時に実行する必要がある命令またはステートメントのグループで構成されます。
Javaでコンストラクターが必要なのは何ですか?
Java でのコンストリクターの必要性を説明するために、ボックスの例を見てみましょう。 ボックスをクラスと見なします。 ボックスには、長さ、幅、高さなどのさまざまな変数があります。 オブジェクトを作成するとき、ボックス クラスにはその寸法の値が定義されていません。 新しいオブジェクトが作成されると、コンストラクターは 2 つの方法でクラス変数に値を割り当てます。つまり、プログラマーによって渡されるさまざまなパラメーターを使用するか、デフォルトの Java コンストラクターを使用します。
Javaでのコンストラクターのオーバーロードとはどういう意味ですか?
コンストラクターのオーバーロードでは、同じクラスの複数のコンストラクターが定義されています。 ただし、すべてのコンストラクターには、一意の署名または特定の入力パラメーターが必要です。 Javaのコンストラクター オーバーロード プログラムを使用すると、1 つのクラスが複数のコンストラクターを持つことができます。コンストラクターは、渡される引数のリストによって異なります。 オーバーロードされたすべてのコンストラクターは、さまざまなクラス タスクを実行するために使用されます。
Java コンパイラは、パラメーターの型、パラメーター リスト、および入力パラメーターの量に基づいて、オーバーロードされたコンストラクターを識別します。 オーバーロードされたコンストラクターのシグネチャが異なることは明らかです。 コンストラクターのシグネチャには、パラメーターの型と名前が含まれます。 2 つのクラス コンストラクターが同一のシグネチャを持つ場合、あいまいさの問題が発生することがあります。 このような状況では、コンパイラは 2 つを区別できません。 したがって、エラー通知が表示されます。 異なるシグネチャを持つオーバーロードされたコンストラクターが存在する場合があります。 この場合、コンパイラーは、さまざまなオブジェクトの入力パラメーターの数に応じてコンダクターが呼び出されることを確認します。
コンストラクターのオーバーロードの例
この例では、クラスStudentDataの 2 つのオブジェクトを作成しようとしています。 1 つのオブジェクトは既定のコンストラクターを使用し、もう 1 つのオブジェクトはパラメーター化されたコンストラクターを使用します。 両方のコンストラクターには、個別の初期化コードがあります。 異なる 2 の目的のために、異なる 2 の初期化コードを使用して、任意の数のコンストラクターを作成することができます。
StudentData.java
クラスStudentData
{
プライベートint stuID;
プライベート文字列stuName;
プライベートintステージ。
学生データ()
{
//デフォルトのコンストラクタ
学生ID = 100 ;
stuName = "新入生" ;
ステージ= 18 ;
}
StudentData ( int num1, String str, int num2)
{
//パラメータ化されたコンストラクタ
学生ID = num1;
stuName = str;
ステージ = num2;
}
// ゲッターおよびセッター メソッド
public int getStuID() {
stuID を返します。
}
public void setStuID( int stuID) {
この.stuID = stuID;
}
public String getStuName() {
stuName を返します。
}
public void setStuName( String stuName) {
この.stuName = stuName;
}
public int getStuAge() {
ステージを返します。
}
public void setStuAge( int stuAge) {
この.stuAge = stuAge;
}
public static void main( String args[])
{
//このオブジェクトの作成は、デフォルトのコンストラクターを呼び出します
StudentData myobj = new StudentData ();
システム。 out .println( “生徒の名前: “ +myobj.getStuName());
システム。 out .println( “生徒の年齢: “ +myobj.getStuAge());
システム。 out .println( “学生IDは: “ +myobj.getStuID());
/* このオブジェクトの作成は、パラメータ化された
* コンストラクタ StudentData(int, String, int)*/
StudentData myobj2 = new StudentData ( 555 , “Chaitanya” , 25 );
システム。 out .println( “学生名: “ +myobj2.getStuName());
システム。 out .println( “生徒の年齢: “ +myobj2.getStuAge());
システム。 out .println( “学生IDは: “ +myobj2.getStuID());
}
}
出力:
Student Name is :新入生_
学生の年齢: 18
学生証: 100 _
学生名:チャイタンヤ_
学生の年齢: 25
学生証: 555 _
参考: https ://beginnersbook.com/2013/05/constructor-overloading/
世界トップクラスの大学が提供するソフトウェア開発コースをオンラインで学びましょう。 エグゼクティブ PG プログラム、上級認定プログラム、または修士プログラムを取得して、キャリアを加速させましょう。
コンストラクターのオーバーロードにおける this () の機能を理解する
パブリッククラスOverloadingExample2
{
プライベートintロール番号;
オーバーロード例2 ()
{
ロール数 = 100 ;
}
OverloadingExample2 ( int rnum)
{
この();
/*this() はデフォルトの呼び出しに使用されます
* パラメーター化されたコンストラクターからのコンストラクター。
* 常に最初のステートメントにする必要があります
* コンストラクタ本体内。
*/
rollNum = rollNum+ rnum;
}
public int getRollNum() {
ロール番号を返します。
}
public void setRollNum( int rollNum) {
この.rollNum = rollNum;
}
public static void main( String args[])
{
OverloadingExample2 obj = new OverloadingExample2 ( 12 );
システム。 out .println(obj.getRollNum());
}
}
出力
112
参考: https ://beginnersbook.com/2013/05/constructor-overloading/
upGrad の独占的なソフトウェア開発ウェビナー –
upGrad の独占的なソフトウェア開発ウェビナー –
SAAS ビジネス – 何がそんなに違うのか?
上記のプログラムでは、オブジェクトの作成中にパラメーター化されたコンストラクターが呼び出されます。 この () がパラメーター化されたコンストラクターに配置されると、既定のコンストラクターが呼び出されます。 変数rollNumが初期化されます。
もう一つの例:
コンストラクターをまったく実装しない場合、Java コンパイラーはコンパイル中にデフォルトのコンストラクターをコードに挿入します。 ただし、コンストラクターを実装する場合、コンパイラーはこれを行いません。 この点をよりよく理解するには、次の例を参照してください。
publicクラスのデモ
{
プライベートintロール番号;
//ここでは引数のないコンストラクタを定義していません
デモ( int rnum)
{
rollNum = rollNum+ rnum;
}
//Getter メソッドと Setter メソッド
public static void main( String args[])
{
//このステートメントは、引数のないコンストラクターを呼び出します
デモobj =新しいデモ();
}
}
出力:
スレッド「メイン」 java.langで例外が発生しました。 エラー:未解決のコンパイル
問題:コンストラクタDemo ( )が定義されていません
ソフトウェア エンジニアリングに関する人気のコースと記事
人気番組 | |||
ソフトウェア開発のエグゼクティブ PG プログラム - IIIT B | ブロックチェーン証明書プログラム - PURDUE | サイバーセキュリティ証明書プログラム - PURDUE | コンピューター サイエンスの MSC - IIIT B |
その他の人気記事 | |||
米国のクラウド エンジニアの給与 2021-22 | 米国でのAWSソリューションアーキテクトの給与 | 米国のバックエンド開発者の給与 | 米国のフロントエンド開発者の給与 |
アメリカのウェブ開発者の給与 | 2022年のスクラムマスターインタビューの質問. | 2022年にサイバーセキュリティのキャリアを始めるには? | 工学部学生のための米国でのキャリアオプション |
コンストラクターのオーバーロードの使用について説明する
コンストラクション オーバーロードを使用すると、オブジェクトが特定のクラスをさまざまな方法で作成できるようになります。 したがって、この概念は、プログラマーの要件に応じて、さまざまな Java プログラムで使用されます。 Java でコンストラクターのオーバーロードを使用すると、異なるデータ型でオブジェクトを初期化できます。
たとえば、3 つのクラス インスタンス変数を持つオブジェクトがあるとします。 2 番目のインスタンス変数に特定の値を割り当て、他の変数にデフォルト値を割り当てる必要があります。 これを実現するには、構成クラスのさまざまなシグネチャに従って複数のコンストラクターを宣言します。
Java でのコンストラクターのオーバーロードの利点
以下に、 Java プログラムの作成中にコンストラクターのオーバーロードを使用する主な利点を示します。
- コンストラクターのオーバーロードを使用して、さまざまな方法でクラス インスタンスを初期化できます。
- コンストラクターのオーバーロードを使用すると、静的ポリモーフィズムを実現できます。
- オーバーロードされた各コンストラクターは、指定された目的のために異なるタスクを実行します。
- Java でのコンストラクターのオーバーロードは、固有のシグネチャを持つ単一のクラスで複数のコンストラクターを定義するプロセスをスムーズにします。
結論
この記事では、 Java のコンストラクター オーバーロード プログラムとその利点について説明します。 オーバーロードされたコンストラクターがある場合、異なるシグネチャを持つクラスの複数のコンストラクターがあります。 コンパイルするには、すべてのコンストラクターに異なるパラメーター リストが必要です。 パラメーター リストは、引数の型と順序で構成されます。 クラスに同じパラメーター リストを持つ 2 つのコンストラクターを含めることはできません。
ソフトウェア開発者および技術専門家向けのupGradのフルスタック開発認定プログラム
ソフトウェア開発業界に不慣れな方でも、スキルアップを目指している方でも、関連するコースを通じて新しいスキルとテクノロジを習得する必要があります。 フルスタック開発はそのようなコースの 1 つです。
upGrad は、IT プロフェッショナル、ソフトウェア開発者、技術サポート プロフェッショナル、アナリスト、およびソフトウェア開発分野への進出を検討している新卒者向けに特別に設計された、関心のある候補者にソフトウェア開発のエグゼクティブ プログラムを提供します。
このコースでは、JavaScript の高度なスキルを習得し、マイクロサービスと MERN スタックを学習できます。 ほぼ 10 以上のプログラミング言語とツールを学習するだけでなく、Facebook、Walmart、Netflix、LinkedIn で広く使用されているさまざまなツールについても学習します。 このプログラムは、Cloud Labs で没入型の学習体験を提供します。
この認定プログラムを受講する学生は、Capstone プロジェクトで Web アプリケーションを設計、開発、テスト、および展開する機会が与えられます。 学習者は、業界をリードするメンターとの 1 対 1 のキャリア メンターシップ セッションを受けて、これらの特典を利用できます。 コースを修了すると、フルスタック開発者、UI 開発者、フロントエンド、およびバックエンド開発者として働くことができます。
今すぐ申し込んでコースに登録しましょう!
Javaでのコンストラクタの使用は何ですか?
Java のコンストラクターは、オブジェクトを初期化し、クラスのオブジェクトを作成するために使用されます。 オブジェクトの機能と属性の初期値を設定することもできます。 コンストラクターは、メソッドやプロセスに似たコードのブロックのようなものです。
コンストラクターのオーバーロードは静的クラスに対して行われますか?
興味深いことに、静的コンダクターはオーバーロードまたは継承できません。 静的コンダクターは自動的に呼び出されます。 プログラムで静的コンストラクターが実行されるとき、ユーザーは制御できません。
コンストラクターのオーバーロードとメソッドのオーバーロードに違いはありますか?
メソッドは特定のクラス機能を実行するために使用されますが、コンストラクターはオブジェクトを初期化します。 オブジェクトを作成すると、コンストラクターが暗黙的に呼び出されます。 ただし、メソッドはユーザーが明示的に呼び出す必要があります。