Apex-methods
Apex-メソッド
クラスメソッド
Apexのクラスメソッドには、パブリックまたは保護の2つの修飾子があります。 メソッドには戻り型が必須であり、メソッドが何も返さない場合は、戻り型としてvoidを指定する必要があります。 さらに、メソッドにはBodyも必要です。
構文
[public | private | protected | global]
[override]
[static]
return_data_type method_name (input parameters) {
//Method body goes here
}
構文の説明
角括弧内に記載されているパラメータはオプションです。 ただし、次のコンポーネントが不可欠です-
- return_data_type
- method_name
クラスメソッドのアクセス修飾子
アクセス修飾子を使用して、クラスメソッドのアクセスレベルを指定できます。 たとえば、パブリックメソッドは、クラス内およびクラス外のどこからでもアクセスできます。 プライベートメソッドは、クラス内でのみアクセス可能です。 グローバルは、すべてのApexクラスからアクセス可能であり、他のapexクラスからアクセス可能なWebサービスメソッドとして公開できます。
例
//Method definition and body
public static Integer getCalculatedValue () {
//do some calculation
myValue = myValue+10;
return myValue;
}
このメソッドの戻り値の型は整数であり、パラメーターを取りません。
メソッドは、次の例に示すようにパラメータを持つことができます-
//Method definition and body, this method takes parameter price which will then be used
//in method.
public static Integer getCalculatedValueViaPrice (Decimal price) {
//do some calculation
myValue = myValue+price;
return myValue;
}
クラスコンストラクター
コンストラクターは、オブジェクトがクラスブループリントから作成されたときに呼び出されるコードです。 クラス名と同じ名前です。
デフォルトでは引数なしのコンストラクタが呼び出されるため、すべてのクラスにコンストラクタを定義する必要はありません。 コンストラクターは、変数の初期化、またはクラスの初期化時にプロセスを実行するときに役立ちます。 たとえば、クラスが呼び出されたときに、特定の整数変数に値を0として割り当てたいとします。
例
//Class definition and body
public class MySampleApexClass2 {
public static Double myValue; //Class Member variable
public static String myString; //Class Member variable
public MySampleApexClass2 () {
myValue = 100;//initialized variable when class is called
}
public static Double getCalculatedValue () {//Method definition and body
//do some calculation
myValue = myValue+10;
return myValue;
}
public static Double getCalculatedValueViaPrice (Decimal price) {
//Method definition and body
//do some calculation
myValue = myValue+price;//Final Price would be 100+100=200.00
return myValue;
}
}
コンストラクターを介してクラスのメソッドを呼び出すこともできます。 これは、視覚フォースコントローラー用にApexをプログラミングするときに便利です。 クラスオブジェクトが作成されると、次に示すようにコンストラクタが呼び出されます-
//Class and constructor has been instantiated
MySampleApexClass2 objClass = new MySampleApexClass2();
Double FinalPrice = MySampleApexClass2.getCalculatedValueViaPrice(100);
System.debug('FinalPrice: '+FinalPrice);
オーバーロードコンストラクター
コンストラクターはオーバーロードできます。つまり、クラスは異なるパラメーターで定義された複数のコンストラクターを持つことができます。
例
public class MySampleApexClass3 { //Class definition and body
public static Double myValue; //Class Member variable
public static String myString; //Class Member variable
public MySampleApexClass3 () {
myValue = 100;//initialized variable when class is called
System.debug('myValue variable with no Overaloading'+myValue);
}
public MySampleApexClass3 (Integer newPrice) {//Overloaded constructor
myValue = newPrice;//initialized variable when class is called
System.debug('myValue variable with Overaloading'+myValue);
}
public static Double getCalculatedValue () {//Method definition and body
//do some calculation
myValue = myValue+10;
return myValue;
}
public static Double getCalculatedValueViaPrice (Decimal price) {
//Method definition and body
//do some calculation
myValue = myValue+price;
return myValue;
}
}
前の例で実行したように、このクラスを実行できます。
//Developer Console Code
MySampleApexClass3 objClass = new MySampleApexClass3();
Double FinalPrice = MySampleApexClass3.getCalculatedValueViaPrice(100);
System.debug('FinalPrice: '+FinalPrice);