Java コンストラクター メソッド
Java コンストラクターを使用してオブジェクトを作成する
エミリヤ・マネフスカ/ゲッティイメージズ
Java コンストラクターは、定義済みのオブジェクトの新しいインスタンスを作成します。この記事では、Java コンストラクター メソッドを使用して Person オブジェクトを作成する方法について説明します。
ノート: この例では、同じフォルダーに 2 つのファイルを作成する必要があります。 Person.java Person クラスを定義し、 PersonExample.java を含む 主な方法 Person オブジェクトを作成します。
コンストラクター メソッド
firstName、lastName、address、および username の 4 つのプライベート フィールドを持つ Person クラスを作成することから始めましょう。これらのフィールドはプライベート変数であり、それらの値が一緒になってオブジェクトの状態を構成します。最も単純なコンストラクター メソッドも追加しました。
|_+_||_+_|コンストラクター メソッドは、クラスと同じ名前を共有し、値を返すことができないことを除いて、他のパブリック メソッドと似ています。パラメータは、1 つまたは複数持つことができます。
現在、コンストラクター メソッドは何も実行していません。これが Person オブジェクトの初期状態に対して何を意味するかを検討する良い機会です。そのままにしておいた場合、または Person クラスにコンストラクター メソッドを含めなかった場合 ( ジャワ クラスを定義せずにクラスを定義することもできます)、その場合、フィールドには値がありません。また、人には名前と住所、およびその他の特性を持たせたいと考えています。オブジェクトが期待どおりに使用されず、オブジェクトの作成時にフィールドが初期化されない可能性があると思われる場合は、常にデフォルト値で定義してください。
|_+_||_+_|通常、コンストラクター メソッドが確実に役立つようにするには、パラメーターを期待するように設計します。これらのパラメーターを介して渡される値は、プライベート フィールドの値を設定するために使用できます。
|_+_||_+_|コンストラクター メソッドは、4 つの文字列の値が渡されることを想定しています。次に、オブジェクトの初期状態を設定するために使用されます。と呼ばれる新しいメソッドも追加しました displayPersonDetails() 作成後のオブジェクトの状態を確認できるようにします。
コンストラクター メソッドの呼び出し
オブジェクトの他のメソッドとは異なり、コンストラクター メソッドは「new」キーワードを使用して呼び出す必要があります。
|_+_||_+_|
行ったことは次のとおりです。
- Person オブジェクトの新しいインスタンスを作成するには、まずオブジェクトを保持する Person 型の変数を定義します。この例では、それを呼び出しました デイブ .
- 等号の反対側では、Person クラスのコンストラクター メソッドを呼び出し、それに 4 つの文字列値を渡します。コンストラクター メソッドはこれら 4 つの値を取得し、Person オブジェクトの初期状態を次のように設定します: firstName = 'Dave'、lastName = 'Davidson'、address = '12 Main St'、username = 'DDavidson'。
Person オブジェクトを呼び出すために Java メイン クラスに切り替えたことに注意してください。オブジェクトを扱うとき、プログラムはまたがる 複数の .java ファイル .必ず同じフォルダに保存してください。プログラムをコンパイルして実行するには、Java をコンパイルして実行するだけです。 メインクラス ファイル (つまり、 PersonExample.java )。 Java コンパイラは、コンパイルしたいことを理解するのに十分スマートです。 Person.java PersonExample クラスで使用したことがわかるからです。
パラメータの命名
コンストラクター メソッドのパラメーターがプライベート フィールドと同じ名前を持つ場合、Java コンパイラーは混乱します。この例では、パラメーターの前に「person」という単語を付けることで、それらを区別していることがわかります。別の方法があることに言及する価値があります。代わりに「this」キーワードを使用できます。
|_+_||_+_|「this」キーワードは、値が割り当てられる変数が、パラメーターではなく、クラスによって定義されたものであることを Java コンパイラーに伝えます。これはプログラミング スタイルの問題ですが、この方法を使用すると、複数の名前を使用せずにコンストラクターのパラメーターを定義できます。
複数のコンストラクター メソッド
オブジェクト クラスを設計する場合、使用できるコンストラクタ メソッドは 1 つだけに制限されません。オブジェクトを初期化するにはいくつかの方法があると判断するかもしれません。複数のコンストラクター メソッドを使用する場合の唯一の制約は、パラメーターが異なる必要があることです。
Person オブジェクトを作成する時点では、ユーザー名がわからない可能性があると想像してください。 firstName、lastName、および address のみを使用して Person オブジェクトの状態を設定する新しいコンストラクター メソッドを追加しましょう。
|_+_||_+_|
2 番目のコンストラクター メソッドも「Person」と呼ばれ、値を返さないことに注意してください。それと最初のコンストラクター メソッドの唯一の違いはパラメーターです。今回は、 三 文字列値: firstName、lastName、および address。
Person オブジェクトを 2 つの異なる方法で作成できるようになりました。
|_+_||_+_|人 デイブ firstName、lastName、住所、およびユーザー名で作成されます。人 ジム、 ただし、ユーザー名は取得されません。つまり、ユーザー名は空の文字列になります: username = ''.
簡単な要約
コンストラクター メソッドは、オブジェクトの新しいインスタンスが作成されたときにのみ呼び出されます。彼ら: