コンストラクタ
Apex は、作成するクラスごとにデフォルトのコンストラクタを提供します。たとえば、ここまでは Fridge コンストラクタを自分で定義していなくても、new Fridge() をコールすれば、Fridge のインスタンスを作成することができました。ただし、Apex では初期化されていない変数はすべて null であるため、この場合の Fridge インスタンスのメンバー変数はすべて null に設定されます。場合によっては、在庫数量に 0、モデル番号に総称番号など、特定の初期値を指定する必要が生じます。この場合、独自のコンストラクタを記述する必要があります。さらに、パラメータを取るコンストラクタがあると、渡された引数値からメンバー変数を初期化できるため、便利な場合があります。
では、パラメータなし、ありの 2 つのコンストラクタを追加してみましょう。
-
次のコードを Fridge クラスに追加します。
1public Fridge() { 2 modelNumber = 'XX-XX'; 3 numberInStock = 0; 4} 5 6public Fridge(String theModelNumber, Integer theNumberInStock) { 7 modelNumber = theModelNumber; 8 numberInStock = theNumberInStock; 9}コンストラクタは、クラス自体と同じ名前であること、戻り値がないことを除き、メソッドと似ています。 -
これで、インスタンスを作成し、追加した 2 つ目のコンストラクタを使用してデフォルト値を一括設定できます。次のコードを実行します。
1Fridge myFridge = new Fridge('MX-EO', 100); 2System.debug (myFridge.getModelNumber());これにより「MX-EO」と出力されます。多くの場合、クラスにはオブジェクト作成に役立つさまざまなコンストラクタがあります。