Apex-methods

提供:Dev Guides
移動先:案内検索

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);