この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

アクセス修飾子

Apex では、メソッドや変数の定義で privateprotectedpublicglobal の各アクセス修飾子を使用できます。

トリガや匿名ブロックでもアクセス修飾子を使用できますが、Apex の狭い範囲では有用ではありません。たとえば、匿名ブロックでメソッドを global として宣言しても、メソッドをそのコードの外からコールすることはできません。

クラス���クセス修飾子の詳細は、「Apex クラス定義」を参照してください。

インターフェースメソッドにはアクセス修飾子はありません。常に global となります。詳細は、「インターフェース」を参照してください。

メモ

デフォルトでは、メソッドや変数は「定義されたクラス内でのみ」Apex コードに表示されます。メソッドや変数を同じアプリケーション名前空間の他のクラスで使用できるようにするには、明示的に public として指定する必要があります (「名前空間プレフィックス」を参照)。次のアクセス修飾子を使用して表示のレベルを変更できます。

private
これはデフォルトです。メソッドや変数は定義された Apex クラス内でのみアクセスできます。アクセス修飾子を指定しない場合、メソッドや変数は private となります。
protected
メソッドや変数は、定義する Apex クラスのすべての内部クラス、および定義する Apex クラスを拡張するクラスから参照できます。このアクセス修飾子は、インスタンスメソッドやメンバー変数でのみ利用できます。Java と同様にデフォルト (private) よりも厳密な権限付与が必要であることに注意してください。
public
メソッドや変数は、このアプリケーションや名前空間のすべての Apex クラスで使用できます。

Apex での public アクセス修飾子は Java の場合とは異なります。アプリケーションの結合を妨げ、各アプリケーションのコードを分離するための措置です。Java で行われるようにメソッドや変数を公開する場合、Apex では global アクセス修飾子を使用します。

メモ

global
メソッドや変数は、同じアプリケーションの Apex コードだけでなく、クラスへのアクセス権のあるすべての Apex コードで使用できます。アプリケーション外 (SOAP API 内、または別の Apex コード) から参照されるすべてのメソッドはこのアクセス修飾子を使用する必要があります。メソッドまたは変数を global として宣言する場合、それを含むクラスも global として宣言する必要があります。

global アクセス修飾子は極力使用しないか、まったく使用しないことをお勧めしています。アプリケーション間の依存関係は維持が困難なためです。

メモ

privateprotectedpublicglobal アクセス修飾子を使用するには、次の構文に従います。

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}