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

Newer Version Available

This content describes an older version of this product. View Latest

Apex クラス定義

Apex では、最上位クラス (外部クラスとも呼ぶ) と、クラス内に定義されているクラスである内部クラスの両方を定義できます。内部クラスは、1 つ下のレベルのみです。次に例を示します。
1public class myOuterClass {
2   // Additional myOuterClass code here
3   class myInnerClass {
4     // myInnerClass code here
5   }
6}
クラスを定義するには、次を指定します。
  1. アクセス修飾子:
    • 最上位クラスの宣言には、public または global などのアクセス修飾子の 1 つを使用する必要があります。
    • 内部クラスの宣言にはアクセス修飾子を使用する必要はありません。
  2. 省略可能な定義修飾子 (virtualabstract など)
  3. 必須: クラス名の前に付ける class キーワード
  4. 必要に応じて拡張および実装、またはそのいずれか

クラス名に標準オブジェクト名を使用しないでください。使用すると、予期しない結果が生じます。標準オブジェクトの一覧は、『Salesforce および Force.com のオブジェクトリファレンス』を参照してください。

メモ

クラスを定義するには、次の構文を使用します。

1private | public | global 
2[virtual | abstract | with sharing | without sharing] 
3class ClassName [implements InterfaceNameList] [extends ClassName] 
4{ 
5// The body of the class
6}
  • private アクセス修飾子は、このクラスがローカルで表示される、つまり、コードのこのセクションのみで表示されることを宣言します。これが内部クラスのデフォルトアクセスです。つまり、内部クラスにアクセス修飾子を指定しない場合、private とみなされます。このキーワードは内部クラスでのみ使用できます。
  • public アクセス修飾子は、このクラスがアプリケーションや名前空間で表示されることを宣言します。
  • global アクセス修飾子は、このクラスがすべての Apex コードで表示されることを宣言します。webService キーワードで定義されているメソッドを含むすべてのクラスは global として宣言する必要があります。メソッド、または内部クラスを global として宣言した場合、最上位 (外部) クラスも global として宣言する必要があります。
  • with sharing および without sharing の各キーワードはこのクラスの共有モードを指定します。詳細は、with sharing または without sharing キーワードの使用」を参照してください。
  • virtual 定義修飾子は、このクラスが拡張や上書きを許可することを宣言します。クラスが virtual として定義されていない場合、override キーワードを使用したメソッドの上書きはできません。
  • abstract 定義修飾子は、このクラスに抽象メソッド (署名のみが宣言され、本文が定義されていないメソッド) が含まれることを宣言します。
  • クラスが「管理-リリース済み」パッケージバージョンでアップロードされた後に、抽象メソッドを global クラスに追加することはできません。
  • 「管理-リリース済み」パッケージのクラスが仮想の場合、そこに追加できるメソッドも仮想であり、実装があることが必要です。
  • インストール済み管理パッケージのグローバルクラスの public または protected 仮想メソッドは上書きできません。

管理パッケージの詳細は、「パッケージとは?」を参照してください。

メモ

クラスは複数のインターフェースを実装できますが、既存のクラスを 1 つしか拡張できません。この制限は、Apex が複数の継承をサポートしていないことを意味しています。リストのインターフェース名はカンマで区切られています。インターフェースの詳細は、「インターフェースについて」を参照してください。

メソッドと変数のアクセス修飾子の詳細は、「アクセス修飾子」を参照してください。