アクセス修飾子
Apex では、メソッドや変数の定義で private、protected、public、global の各アクセス修飾子を使用できます。
トリガや匿名ブロックでもアクセス修飾子を使用できますが、Apex の狭い範囲では有用ではありません。たとえば、匿名ブロックでメソッドを global として宣言しても、メソッドをそのコードの外からコールすることはできません。
クラス���クセス修飾子の詳細は、「Apex クラス定義」を参照してください。
デフォルトでは、メソッドや変数は「定義されたクラス内でのみ」Apex コードに表示されます。メソッドや変数を同じアプリケーション名前空間の他のクラスで使用できるようにするには、明示的に public として指定する必要があります (「名前空間プレフィックス」を参照)。次のアクセス修飾子を使用して表示のレベルを変更できます。
- private
- これはデフォルトです。メソッドや変数は定義された Apex クラス内でのみアクセスできます。アクセス修飾子を指定しない場合、メソッドや変数は private となります。
- protected
- メソッドや変数は、定義する Apex クラスのすべての内部クラス、および定義する Apex クラスを拡張するクラスから参照できます。このアクセス修飾子は、インスタンスメソッドやメンバー変数でのみ利用できます。Java と同様にデフォルト (private) よりも厳密な権限付与が必要であることに注意してください。
- public
- メソッドや変数は、このアプリケーションや名前空間のすべての Apex クラスで使用できます。
- global
- メソッドや変数は、同じアプリケーションの Apex コードだけでなく、クラスへのアクセス権のあるすべての Apex コードで使用できます。アプリケーション外 (SOAP API 内、または別の Apex コード) から参照されるすべてのメソッドはこのアクセス修飾子を使用する必要があります。メソッドまたは変数を global として宣言する場合、それを含むクラスも global として宣言する必要があります。
private、protected、public、global アクセス修飾子を使用するには、次の構文に従います。
1[(none)|private|protected|public|global] declaration次に例を示します。
1// private variable s1
2private string s1 = '1';
3
4// public method getsz()
5public string getsz() {
6 ...
7}