#このチュートリアルの動作環境: Windows7 システム、Java8 バージョン、DELL G3 コンピューター。 コンストラクター メソッドは、クラスの特別なメソッドであり、クラスの新しいオブジェクトを初期化するために使用され、オブジェクトの作成後に自動的に呼び出されます (new 演算子)。 Java のすべてのクラスにはデフォルトのコンストラクターがあり、複数のコンストラクターを持つことができます。 Java コンストラクター メソッドには次の特性があります。Java のコンストラクター メソッドは、「class class_name {public class_name(){} public ciass_name([paramList]){} ...//class body}」と記述されます。メソッド名は同じである必要があります。クラス名として使用し、それぞれのメソッドパラメータは異なる必要があります。
ここで疑問に思うかもしれませんが、コンストラクタには戻り値がありませんよね?なぜ void で宣言できないのでしょうか?
簡単に言えば、これは Java の構文です。実際、クラスのコンストラクタには戻り値があり、new キーワードを使用してコンストラクタを呼び出すと、コンストラクタはクラスのインスタンスを返します。このクラスのインスタンスはコンストラクタの戻り値とみなすことができるため、コンストラクターの戻り値 値の型は常に現在のクラスであり、戻り値の型を定義する必要はありません。ただし、コンストラクターの戻り値は暗黙的であるため、コンストラクターで return を使用して現在のクラスのオブジェクトを返さないように注意する必要があります。
注: コンストラクターは、static、final、synchronized、abstract、およびネイティブ (abstract と同様) では変更できません。コンストラクターは新しいオブジェクトを初期化するために使用されるため、それを静的に変更することは意味がありません。コンストラクタはサブクラスに継承できないので、finalやabstractで修飾しても意味がありません。複数のスレッドが同じメモリ アドレスを持つ同じオブジェクトを同時に作成することはないため、同期変更を使用する必要はありません。 static と Final 以外のキーワードがわからない場合は、チュートリアルの後半で詳しく説明します。
コンストラクター メソッドの構文形式は次のとおりです。class class_name {
public class_name(){} // 默认无参构造方法
public ciass_name([paramList]){} // 定义构造方法
…
// 类主体
}
クラス内では、クラスと同じ名前のメソッドがコンストラクター メソッドです。各クラスは複数のコンストラクターを持つことができますが、それぞれに異なるメソッド パラメーターを含める必要があります。
構築方法には、主にパラメータなしの構築方法とパラメータ化された構築方法があり、例は次のとおりです。構築方法には、パラメータレス構築方法とパラメータ化構築方法の 2 つがあります。クラス内に異なるパラメーターを持つ同じ名前の複数のメソッドを定義することをメソッドのオーバーロードと呼びます。どちらのコンストラクターも、クラスと同じ MyClass という名前を持っています。クラスをインスタンス化するときに、初期化のためにさまざまなコンストラクターを呼び出すことができます。
注: クラスのコンストラクターを定義する必要はありません。クラスにコンストラクターが定義されていない場合、Java はクラスのデフォルトのコンストラクターを自動的に生成します。デフォルトのコンストラクターにはパラメーターが含まれておらず、メソッド本体は空です。 1 つ以上のコンストラクターがクラスで明示的に定義されている場合、Java はデフォルトのコンストラクターを提供しなくなりました。
ヒント: パラメーターなしのコンストラクターは、Nullary コンストラクターとも呼ばれます。コンパイラによって自動的に追加されたコンストラクタのみをデフォルト コンストラクタと呼びます。パラメーターもコンテンツも持たずにコンストラクターを作成した場合、そのコンストラクターはデフォルト コンストラクターとは呼ばれません (単に Nullary コンストラクター)。これは単なる名詞の定義ですが、認定試験では 2 つの違いを区別する必要があります。
推奨される関連ビデオ チュートリアル:
Java ビデオ チュートリアル以上がJavaでコンストラクタメソッドを書く方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。