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

Apex クラスと Java クラスの違い

Apex クラスと Java クラスは同じように動作しますが、大きな違いがいくつかあります。
Apex クラスと Java クラスの主な違いを次に示します。
  • 内部クラスとインターフェースは、外部クラスの 1 つ下のレベルでのみ宣言できます。
  • 静的メソッドと変数は、内部クラスではなく最上位クラスでのみ宣言できます。
  • 内部クラスは、Java の静的な内部クラスのように機能しますが、static キーワードを要求しません。内部クラスは、外部クラスのようにインスタンスメンバー変数を持つことができますが、(this キーワードを使った) 外部クラスのインスタンスへの暗黙的ポインターはありません。
  • デフォルトのアクセス修飾子は private です。つまり、メソッドまたは変数は、定義された Apex クラス内からのみアクセス可能です。アクセス修飾子を指定しない場合、メソッドや変数は private となります。
  • メソッドまたは変数にアクセス修飾子を指定しない場合は、private アクセス修飾子を指定した場合と同じ意味となります。
  • public アクセス修飾子は、メソッドまたは変数がこのアプリケーションまたは名前空間内のすべての Apex で使用可能なことを意味します。
  • global アクセス修飾子は、メソッドまたは変数が、同じアプリケーション内の Apex コードだけではなく、クラスへのアクセス権を付与されたすべての Apex コードで使用可能なことを意味します。アプリケーション外 (SOAP API 内、または別の Apex コード) から参照されるすべてのメソッドはこのアクセス修飾子を使用する必要があります。メソッドまたは変数を global として宣言する場合、それを含むクラスも global として宣言する必要があります��
  • メソッドおよびクラスはデフォルトで final です。
    • virtual 定義修飾子は、拡張や上書きを許可します。
    • override キーワードは、基本クラスメソッドを上書きするメソッドで明示的に使用する必要があります。
  • インターフェースで定義されたメソッドには、インターフェースとして、同じアクセス修飾子 (public または global) が付けられます。
  • 例外クラスは、例外または別のユーザー定義例外への拡張が必要です。
    • 例外クラス名の末尾には、exception をつける必要があります。
    • 例外クラスは 4 つの暗黙的なコンストラクターが組み込まれていますが、追加することもできます。
  • クラスとインターフェースはトリガーや匿名ブロック内で定義できますが、ローカルとしてのみ定義できます。