クラスの定義
Apex クラスは Java クラスと似ています。クラスは、オブジェクトを作成するためのテンプレート、つまり設計図です。オブジェクトはクラスのインスタンスです。たとえば、Fridge クラスは、冷蔵庫の状態と、冷蔵庫でできることすべてを規定します。Fridge クラスの 1 つのインスタンスが、購入や販売が可能な特定の冷蔵庫にあたります。
Apex クラスには、変数とメソッドが含まれます。変数は、オブジェクトの名前や種別など、オブジェクトの状態を指定するために使用されます。これらの変数はクラスに関連付けられており、クラスのメンバーであるため、メンバー変数と呼ばれます。メソッドは、品目の購入や販売など、動作を制御するために使用されます。
メソッドには、ローカル変数を含めることもできます。ローカル変数はメソッド内で宣言され、そのメソッドのみが使用します。クラスメンバー変数がオブジェクトの属性 (名前や高さなど) を定義するのに対して、メソッド内のローカル変数は、メソッドのみが使用し、クラスを規定しません。
1public class Fridge {
2 public String modelNumber;
3 public Integer numberInStock;
4
5 public void updateStock(Integer justSold) {
6 numberInStock = numberInStock - justSold;
7 }
8}これで、Fridge という新しいクラスを定義できました。このクラスには 2 つのメンバー変数 (modelNumber と numberInStock) および 1 つのメソッド (updateStock) が含まれます。void 型は、updateStock メソッドが値を返さないことを示します。
1Fridge myFridge = new Fridge();
2myFridge.modelNumber = 'MX-O';
3myFridge.numberInStock = 100;
4myFridge.updateStock(20);
5Fridge myOtherFridge = new Fridge();
6myOtherFridge.modelNumber = 'MX-Y';
7myOtherFridge.numberInStock = 50;
8System.debug('myFridge.numberInStock=' + myFridge.numberInStock);
9System.debug('myOtherFridge.numberInStock=' + myOtherFridge.numberInStock);これにより、Fridge クラスの新しいインスタンスが myFridge という名前のオブジェクトとして作成されます。オブジェクト内の変数の値を設定し、updateStock メソッドをコールして、引数で値 20 を渡します。これを実行すると、updateStock インスタンスメソッドが numberInStock 値から引数を減算します。次に、Fridge クラスのインスタンスをもう 1 つ作成し、在庫数を 50 に設定します。最終的な出力の値として、80 と 50 が表示されます。