- コンストラクターの種類
- コンストラクターのオーバーロード
- コンストラクターは値を返しますか?
- あるオブジェクトの値を別のオブジェクトにコピーする
- コンストラクターは初期化の代わりに他のタスクを実行しますか?
で ジャワ 、コンストラクターはメソッドと同様のコードのブロックです。のインスタンスが作成されたときに呼び出されます。 クラス 創造された。コンストラクタ呼び出し時に、オブジェクト用のメモリがメモリに確保されます。
これは、オブジェクトを初期化するために使用される特別なタイプのメソッドです。
new() キーワードを使用してオブジェクトが作成されるたびに、少なくとも 1 つのコンストラクターが呼び出されます。
クラス内に使用可能なコンストラクターがない場合は、デフォルトのコンストラクターを呼び出します。このような場合、Java コンパイラはデフォルトでデフォルトのコンストラクタを提供します。
Java には、引数なしのコンストラクターとパラメーター化されたコンストラクターの 2 種類のコンストラクターがあります。
注記: オブジェクトの作成時に値を構築するため、コンストラクターと呼ばれます。クラスのコンストラクターを記述する必要はありません。これは、クラスにデフォルトのコンストラクターがない場合、Java コンパイラーがデフォルトのコンストラクターを作成するためです。
Javaコンストラクタ作成時のルール
コンストラクターには 2 つのルールが定義されています。
Javaの文字列を連結する
- コンストラクター名はクラス名と同じである必要があります
- コンストラクターには明示的な戻り値の型があってはなりません
- Java コンストラクターは、抽象、静的、最終、同期化することはできません
注: 使用できます アクセス修飾子 コンストラクターを宣言するとき。オブジェクトの作成を制御します。言い換えれば、Java ではプライベート、プロテクト、パブリック、またはデフォルトのコンストラクターを使用できます。
Java コンストラクターの種類
Java には 2 種類のコンストラクターがあります。
- デフォルトのコンストラクター (引数なしのコンストラクター)
- パラメータ化されたコンストラクタ
Javaのデフォルトコンストラクタ
コンストラクターは、パラメーターを持たない場合、「デフォルト コンストラクター」と呼ばれます。
デフォルトのコンストラクターの構文:
(){}
デフォルトのコンストラクターの例
この例では、Bike クラスに引数なしのコンストラクターを作成しています。オブジェクトの作成時に呼び出されます。 |
//Java Program to create and call a default constructor class Bike1{ //creating a default constructor Bike1(){System.out.println('Bike is created');} //main method public static void main(String args[]){ //calling a default constructor Bike1 b=new Bike1(); } }今すぐテストしてください
出力:
Bike is created
ルール: クラスにコンストラクターがない場合、コンパイラーはデフォルトのコンストラクターを自動的に作成します。
Q) デフォルトのコンストラクターの目的は何ですか?
デフォルト コンストラクターは、型に応じて 0、null などのデフォルト値をオブジェクトに提供するために使用されます。
デフォルト値を表示するデフォルトコンストラクタの例
//Let us see another example of default constructor //which displays the default values class Student3{ int id; String name; //method to display the value of id and name void display(){System.out.println(id+' '+name);} public static void main(String args[]){ //creating objects Student3 s1=new Student3(); Student3 s2=new Student3(); //displaying values of the object s1.display(); s2.display(); } }今すぐテストしてください
出力:
0 null 0 null
説明: 上記のクラスではコンストラクターを作成していないため、コンパイラーがデフォルトのコンストラクターを提供します。ここでは、0 と null 値がデフォルトのコンストラクターによって提供されます。
Java パラメータ化されたコンストラクター
特定の数のパラメーターを持つコンストラクターは、パラメーター化されたコンストラクターと呼ばれます。
パラメーター化されたコンストラクターを使用する理由は何ですか?
パラメーター化されたコンストラクターは、個別のオブジェクトに異なる値を提供するために使用されます。ただし、同じ値を指定することもできます。
パラメータ化されたコンストラクタの例
この例では、2 つのパラメーターを持つ Student クラスのコンストラクターを作成しました。コンストラクターには任意の数のパラメーターを含めることができます。
//Java Program to demonstrate the use of the parameterized constructor. class Student4{ int id; String name; //creating a parameterized constructor Student4(int i,String n){ id = i; name = n; } //method to display the values void display(){System.out.println(id+' '+name);} public static void main(String args[]){ //creating objects and passing values Student4 s1 = new Student4(111,'Karan'); Student4 s2 = new Student4(222,'Aryan'); //calling method to display the values of object s1.display(); s2.display(); } }今すぐテストしてください
出力:
111 Karan 222 Aryan
Java でのコンストラクターのオーバーロード
Java では、コンストラクターはメソッドに似ていますが、戻り値の型はありません。 Java メソッドのようにオーバーロードすることもできます。
コンストラクタ Java でのオーバーロード これは、異なるパラメーター リストを持つ複数のコンストラクターを使用する手法です。これらは、各コンストラクターが異なるタスクを実行するように配置されています。これらは、リスト内のパラメーターの数とその型によってコンパイラーによって区別されます。
コンストラクターのオーバーロードの例
//Java program to overload constructors class Student5{ int id; String name; int age; //creating two arg constructor Student5(int i,String n){ id = i; name = n; } //creating three arg constructor Student5(int i,String n,int a){ id = i; name = n; age=a; } void display(){System.out.println(id+' '+name+' '+age);} public static void main(String args[]){ Student5 s1 = new Student5(111,'Karan'); Student5 s2 = new Student5(222,'Aryan',25); s1.display(); s2.display(); } }今すぐテストしてください
出力:
111 Karan 0 222 Aryan 25
Javaのコンストラクタとメソッドの違い
コンストラクターとメソッドの間には多くの違いがあります。それらを以下に示します。
Java コンストラクター | Javaメソッド |
---|---|
コンストラクターは、オブジェクトの状態を初期化するために使用されます。 | メソッドは、オブジェクトの動作を公開するために使用されます。 |
コンストラクターには戻り値の型があってはなりません。 | メソッドには戻り値の型が必要です。 |
コンストラクターは暗黙的に呼び出されます。 | メソッドは明示的に呼び出されます。 |
クラスにコンストラクターがない場合、Java コンパイラーはデフォルトのコンストラクターを提供します。 | いずれの場合も、このメソッドはコンパイラによって提供されません。 |
コンストラクター名はクラス名と同じである必要があります。 | メソッド名はクラス名と同じ場合もあれば、異なる場合もあります。 |
Java コピー コンストラクター
Java にはコピー コンストラクターはありません。ただし、C++ のコピー コンストラクターのように、あるオブジェクトから別のオブジェクトに値をコピーできます。
Java では、あるオブジェクトの値を別のオブジェクトにコピーする方法がたくさんあります。彼らです:
- コンストラクター別
- あるオブジェクトの値を別のオブジェクトに代入することによって
- Objectクラスのclone()メソッドによる
この例では、Java コンストラクターを使用して、あるオブジェクトの値を別のオブジェクトにコピーします。
//Java program to initialize the values from one object to another object. class Student6{ int id; String name; //constructor to initialize integer and string Student6(int i,String n){ id = i; name = n; } //constructor to initialize another object Student6(Student6 s){ id = s.id; name =s.name; } void display(){System.out.println(id+' '+name);} public static void main(String args[]){ Student6 s1 = new Student6(111,'Karan'); Student6 s2 = new Student6(s1); s1.display(); s2.display(); } }今すぐテストしてください
出力:
111 Karan 111 Karan
コンストラクターを使用せずに値をコピーする
オブジェクトの値を別のオブジェクトに割り当てることで、あるオブジェクトの値を別のオブジェクトにコピーできます。この場合、コンストラクターを作成する必要はありません。
Javaは文字列を整数に変換します
class Student7{ int id; String name; Student7(int i,String n){ id = i; name = n; } Student7(){} void display(){System.out.println(id+' '+name);} public static void main(String args[]){ Student7 s1 = new Student7(111,'Karan'); Student7 s2 = new Student7(); s2.id=s1.id; s2.name=s1.name; s1.display(); s2.display(); } }今すぐテストしてください
出力:
111 Karan 111 Karan
Q) コンストラクターは値を返しますか?
はい、それは現在のクラス インスタンスです (値を返すのに戻り値の型を使用することはできません)。
コンストラクターは初期化の代わりに他のタスクを実行できますか?
はい、オブジェクトの作成、スレッドの開始、メソッドの呼び出しなどのように、メソッドで実行するのと同じようにコンストラクターでもあらゆる操作を実行できます。
JavaにConstructorクラスはありますか?
はい。
コンストラクタークラスの目的は何ですか?
Java は、クラス内のコンストラクターの内部情報を取得するために使用できる Constructor クラスを提供します。これは java.lang.reflect パッケージにあります。