この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

Newer Version Available

This content describes an older version of this product. View Latest

コンストラクターの使用

コンストラクターとは、クラスの設計図からオブジェクトを作成するときに呼び出されるコードです。すべてのクラスにコンストラクターを記述する必要はありません。クラスにユーザー定義のコンストラクターが存在しない場合、引数をとらないデフォルトの公開コンストラクターが使用されます。

コンストラクターの構文はメソッドと似ていますが、コンストラクターには明示的な戻り値の型がないことと、作成元のオブジェクトから継承されないという点がメソッドとは異なります。

クラスのコンストラクターを記述した後に、コンストラクターを使用してそのクラスのオブジェクトをインスタンス化するには、new キーワードを使用する必要があります。たとえば、次のクラスを使用するとします。
1public class TestObject {
2
3   // The no argument constructor 
4   public TestObject() {
5      // more code here
6  }
7}
この型の新しいオブジェクトは、次のコードを使用してインスタンス化できます。
1TestObject myTest = new TestObject();

引数を取るコンストラクターを記述する場合、記述したコンストラクターを使用して、その引数を使用するオブジェクトを作成できます。

引数を取るコンストラクターを作成し、引数を取らないコンストラクターも引き続き使用する場合は、引数を取らない独自のコンストラクターをコード内で作成する必要があります。いったんクラスのコンストラクターを作���すると、デフォルトの引数を取らない公開コンストラクターにアクセスすることはできません。

Apex では、コンストラクターはオーバーロード、つまり、異なるパラメーターを持つ複数のコンストラクターを持つことができます。次の例では、引数のないコンストラクターと、単純な整数の引数を取るコンストラクターの 2 つのコンストラクターを持つクラスを示します。また、コンストラクターが this(...) 構文を使用して別のコンストラクターをコールする方法 (コンストラクターチェーニングとも呼ばれる) を示します。
1public class TestObject2 {
2
3private static final Integer DEFAULT_SIZE = 10;
4
5Integer size;
6
7   //Constructor with no arguments
8   public TestObject2() {
9       this(DEFAULT_SIZE); // Using this(...) calls the one argument constructor    
10   }
11
12   // Constructor with one argument 
13   public TestObject2(Integer ObjectSize) {
14     size = ObjectSize;  
15   }
16}
この型の新しいオブジェクトは、次のコードを使用してインスタンス化できます。
1TestObject2 myObject1 = new TestObject2(42);
2  TestObject2 myObject2 = new TestObject2();
クラスに作成した各コンストラクター��は、それぞれ個別の引数リストが必要です。適切なコンストラクターの例を次に示します。
1public class Leads {
2
3  // First a no-argument constructor 
4  public Leads () {}
5
6  // A constructor with one argument
7  public Leads (Boolean call) {}
8
9  // A constructor with two arguments
10  public Leads (String email, Boolean call) {}
11
12  // Though this constructor has the same arguments as the 
13  // one above, they are in a different order, so this is legal
14  public Leads (Boolean call, String email) {}
15}

新しいクラスを定義する場合、新しいデータ型を定義することになります。クラス名は、string、boolean、account など、他のデータ型の名前を使用できる場所であれば、どの場所でも使用できます。型がクラスである変数を定義する場合、それに割り当てるオブジェクトはそのクラスまたはサブクラスのインスタンスでなければなりません。