コンストラクターの使用
コンストラクターとは、クラスの設計図からオブジェクトを作成するときに呼び出されるコードです。すべてのクラスにコンストラクターを記述する必要はありません。クラスにユーザー定義のコンストラクターが存在しない場合、引数をとらないデフォルトの公開コンストラクターが使用されます。
コンストラクターの構文はメソッドと似ていますが、コンストラクターには明示的な戻り値の型がないことと、作成元のオブジェクトから継承されないという点がメソッドとは異なります。
クラスのコンストラクターを記述した後に、コンストラクターを使用してそのクラスのオブジェクトをインスタンス化するには、new キーワードを使用する必要があります。たとえば、次のクラスを使用するとします。
この型の新しいオブジェクトは、次のコードを使用してインスタンス化できます。
引数を取るコンストラクターを記述する場合、記述したコンストラクターを使用して、その引数を使用するオブジェクトを作成できます。
引数を取るコンストラクターを作成し、引数を取らないコンストラクターも引き続き使用する場合は、引数を取らない独自のコンストラクターをコード内で作成する必要があります。いったんクラスのコンストラクターを作成すると、デフォルトの引数を取らない公開コンストラクターにアクセスすることはできません。
Apex では、コンストラクターはオーバーロード、つまり、異なるパラメーターを持つ複数のコンストラクターを持つことができます。次の例では、引数のないコンストラクターと、単純な整数の引数を取るコンストラクターの 2 つのコンストラクターを持つクラスを示します。また、コンストラクターが this(...) 構文を使用して別のコンストラクターをコールする方法 (コンストラクターチェーニングとも呼ばれる) を示します。
この型の新しいオブジェクトは、次のコードを使用してインスタンス化できます。
クラスに作成した各コンストラクターには、それぞれ個別の引数リストが必要です。適切なコンストラクターの例を次に示します。
新しいクラスを定義する場合、新しいデータ型を定義することになります。クラス名は、string、boolean、account など、他のデータ型の名前を使用できる場所であれば、どの場所でも使用できます。型がクラスである変数を定義する場合、それに割り当てるオブジェクトはそのクラスまたはサブクラスのインスタンスでなければなりません。