この文章は 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 など、他のデータ型の名前を使用できる場所であれば、どの場所でも使用できます。型がクラスである変数を定義する場合、それに割り当てるオブジェクトはそのクラスまたはサブクラスのインスタンスでなければなりません。