Apex-classes
Apex-クラス
クラスとは何ですか?
クラスは、オブジェクトが作成されるテンプレートまたはブループリントです。 オブジェクトはクラスのインスタンスです。 これは、クラスの標準定義です。 ApexクラスはJavaクラスに似ています。
たとえば、 InvoiceProcessor クラスは、請求書で実行できるすべてのメソッドとアクションを含むクラスを記述します。 このクラスのインスタンスを作成すると、現在コンテキストにある単一の請求書を表します。
クラスを作成する
開発者コンソール、Force.com Eclipse IDE、およびApexクラス詳細ページからもApexでクラスを作成できます。
開発者コンソールから
開発者コンソールからApexクラスを作成するには、次の手順に従います-
- ステップ1 *-名前に移動し、開発者コンソールをクリックします。
- ステップ2 *-[ファイル]⇒[新規]をクリックして、Apexクラスをクリックします。
Force.com IDEから
Force.com IDEからクラスを作成するには、次の手順に従います-
- ステップ1 *-Force.com Eclipse IDEを開きます
- ステップ2 *-[ファイル]⇒[新規]⇒[Apexクラス]をクリックして、新しいプロジェクトを作成します。
- ステップ3 *-クラスの名前を指定し、[OK]をクリックします。
これが完了すると、新しいクラスが作成されます。
Apexクラスの詳細ページから
Apexクラスの詳細ページからクラスを作成するには、次の手順に従います-
- ステップ1 *-[名前]⇒[設定]をクリックします。
- ステップ2 *-「頂点クラス」を検索し、リンクをクリックします。 Apexクラスの詳細ページが開きます。
- ステップ3 *-「新規」をクリックし、クラスの名前を入力して、「保存」をクリックします。
Apexクラス構造
以下は、Apexクラス定義のサンプル構造です。
構文
private | public | global
[virtual | abstract | with sharing | without sharing]
class ClassName [implements InterfaceNameList] [extends ClassName] {
//Classs Body
}
この定義では、アクセス修飾子、共有モード、クラス名、クラス本体の組み合わせを使用します。 これらすべてのオプションをさらに詳しく見ていきます。
例
以下は、Apexクラス定義のサンプル構造です-
public class MySampleApexClass { //Class definition and body
public static Integer myValue = 0; //Class Member variable
public static String myString = '';//Class Member variable
public static Integer getCalculatedValue () {
//Method definition and body
//do some calculation
myValue = myValue+10;
return myValue;
}
}
アクセス修飾子
非公開
アクセス修飾子を「Private」として宣言すると、このクラスはローカルでのみ認識され、特定の部分以外ではこのクラスにアクセスできません。 デフォルトでは、クラスにはこの修飾子があります。
パブリック
クラスを「パブリック」として宣言する場合、このことは、このクラスが組織および定義済みの名前空間にアクセス可能であることを意味します。 通常、ほとんどのApexクラスはこのキーワードで定義されます。
グローバル
クラスを「グローバル」として宣言すると、組織に関係なく、すべての頂点コードからアクセスできます。 Webサービスキーワードでメソッドが定義されている場合、グローバルキーワードで包含クラスを宣言する必要があります。
共有モード
次に、さまざまな共有モードについて説明します。
共有あり
これは、SalesforceのApexクラスの特別な機能です。 「With Sharing」キーワードを使用してクラスを指定すると、次の意味があります。クラスが実行されると、ユーザーのアクセス設定とプロファイル許可が尊重されます。 ユーザーのアクションにより30レコードのレコード更新がトリガーされたが、ユーザーがアクセスできるのは20レコードのみで、10レコードにアクセスできないとします。 次に、クラスがレコードを更新するアクションを実行している場合、ユーザーがアクセスできる20個のレコードのみが更新され、残りの10個のレコードは更新されません。 これは、ユーザーモードとも呼ばれます。
共有なし
ユーザーが30のうち10のレコードにアクセスできない場合でも、クラスがシステムモードで実行されているため、30のレコードすべてが更新されます。つまり、キーワードを共有なしで定義されています。 これはシステムモードと呼ばれます。
バーチャル
「仮想」キーワードを使用する場合、このクラスを拡張でき、オーバーライドが許可されることを示します。 メソッドをオーバーライドする必要がある場合、クラスはvirtualキーワードで宣言する必要があります。
抽象
クラスを 'abstract’として宣言すると、メソッドのシグネチャのみが含まれ、実際の実装は含まれません。
クラス変数
構文
[public | private | protected | global] [final] [static] data_type
variable_name [= value]
上記の構文では-
- 変数のデータ型と変数名は必須です
- アクセス修飾子と値はオプションです。
例
public static final Integer myvalue;