Javaでは、コンストラクターはメソッドに似たコードのブロックです。クラスのインスタンスが作成されるときに呼び出されます。コンストラクターの呼び出し時に、オブジェクトのメモリーがメモリーに割り当てられます。
これは、オブジェクトを初期化するために使用される特殊なタイプのメソッドです。
new()キーワードを使用してオブジェクトを作成するたびに、少なくとも1つのコンストラクターが呼び出されます。
クラスで使用可能なコンストラクターがない場合は、デフォルトのコンストラクターを呼び出します。このような場合、Javaコンパイラはデフォルトでデフォルトのコンストラクタを提供します。
Javaには、引数なしのコンストラクタとパラメータ化されたコンストラクタの2種類のコンストラクタがあります。
注:呼び出されます。コンストラクターは、オブジェクトの作成時に値を作成するためです。クラスのコンストラクターを作成する必要はありません。これは、クラスにデフォルトのコンストラクタがない場合、Javaコンパイラがデフォルトのコンストラクタを作成するためです。
Javaコンストラクタを作成するためのルール
コンストラクタには2つのルールが定義されています。
- コンストラクター名はそのクラス名と同じである必要があります
- コンストラクターには明示的な戻り型があってはなりません
- Javaコンストラクターはabstract、static、final、および同期
注:コンストラクターの宣言中にアクセス修飾子を使用できます。これはオブジェクトの作成を制御します。つまり、Javaでプライベート、プロテクト、パブリック、またはデフォルトのコンストラクターを使用できます。
Javaコンストラクターのタイプ
Javaには2つのタイプのコンストラクターがあります。
- デフォルトコンストラクター(引数なしコンストラクター)
- パラメータ化されたコンストラクタ
Javaデフォルトコンストラクタ
コンストラクタがない場合、コンストラクタは「デフォルトコンストラクタ」と呼ばれます。パラメータ。
デフォルトコンストラクターの構文:
デフォルトコンストラクターの例
この例では、no-を作成しています。 Bikeクラスのargコンストラクター。オブジェクトの作成時に呼び出されます。
今すぐテスト
出力:
Bike is created
ルール:クラスにコンストラクターがない場合、コンパイラーは自動的にデフォルトのコンストラクターを作成します。
Q)デフォルトのコンストラクターの目的は何ですか?
デフォルトコンストラクタは、タイプに応じて、0、nullなどのデフォルト値をオブジェクトに提供するために使用されます。
デフォルト値を表示するデフォルトコンストラクタの例
今すぐテスト
出力:
0 null0 null
説明:上記のクラスでは、あなたはそうではありませんコンストラクターを作成して、コンパイラーがデフォルトのコンストラクターを提供するようにします。ここでは、デフォルトのコンストラクターとして0とnullの値が提供されています。
Javaパラメーター化コンストラクター
特定の数のパラメーターを持つコンストラクターは、パラメーター化コンストラクターと呼ばれます。
パラメーター化されたコンストラクターを使用する理由
パラメーター化されたコンストラクターは、個別のオブジェクトに異なる値を提供するために使用されます。ただし、同じ値を指定することもできます。
パラメーター化されたコンストラクターの例
この例では、2つのパラメーターを持つStudentクラスのコンストラクターを作成しました。コンストラクターには任意の数のパラメーターを含めることができます。
今すぐテスト
出力:
111 Karan222 Aryan
Javaでのコンストラクターのオーバーロード
Javaでは、コンストラクターはメソッドと同じですが、戻り値の型がありません。 Javaメソッドのようにオーバーロードすることもできます。
Javaでのコンストラクターのオーバーロードは、異なるパラメーターリストを持つ複数のコンストラクターを持つ手法です。これらは、各コンストラクターが異なるタスクを実行するように配置されています。これらは、リスト内のパラメーターの数とそのタイプによってコンパイラーによって区別されます。
コンストラクターのオーバーロードの例
今すぐテスト
出力:
111 Karan 0222 Aryan 25
Javaのコンストラクターとメソッドの違い
コンストラクターとメソッドには多くの違いがあります。それらを以下に示します。
Javaコンストラクター | Javaメソッド |
---|---|
コンストラクターはオブジェクトの状態を初期化するために使用されます。 | メソッドはオブジェクトの動作を公開するために使用されます。 |
コンストラクターは必須です。戻り型はありません。 | メソッドには戻り型が必要です。 |
コンストラクターは暗黙的に呼び出されます。 | メソッド明示的に呼び出されます。 |
クラスにコンストラクターがない場合、Javaコンパイラーはデフォルトのコンストラクターを提供します。 | メソッドはによって提供されません。いずれの場合もコンパイラ。 |
コンストラクタ名はクラス名と同じである必要があります。 | メソッド名はクラスと同じである場合と同じでない場合があります。名前。 |
Javaコピーコンストラクター
Javaにはコピーコンストラクタはありません。ただし、C ++のコピーコンストラクタのように、あるオブジェクトから別のオブジェクトに値をコピーできます。
Javaで1つのオブジェクトの値を別のオブジェクトにコピーする方法はたくさんあります。それらは次のとおりです。
- コンストラクターによる
- あるオブジェクトの値を別のオブジェクトに割り当てることによる
- Objectクラスのclone()メソッドによる
この例では、Javaコンストラクターを使用して1つのオブジェクトの値を別のオブジェクトにコピーします。
今すぐテスト
出力:
111 Karan111 Karan
コンストラクタなしで値をコピーする
オブジェクトの値を別のオブジェクトに割り当てることで、あるオブジェクトの値を別のオブジェクトにコピーできますオブジェクト。この場合、コンストラクターを作成する必要はありません。
今すぐテスト
出力:
111 Karan111 Karan
Q)コンストラクターは値を返しますか?
はい、それは現在のクラスインスタンスです(戻り値の型は使用できませんが、値を返します)。
コンストラクターは初期化の代わりに他のタスクを実行できますか?
はい、オブジェクトの作成、スレッドの開始、メソッドの呼び出しなどです。コンストラクターでは、メソッドで実行するのと同じように任意の操作を実行できます。
Javaにコンストラクタークラスはありますか?
はい。
コンストラクタークラスの目的は何ですか?
Javaは、次のことができるコンストラクタークラスを提供します。クラス内のコンストラクターの内部情報を取得するために使用されます。 java.lang.reflectパッケージに含まれています。