ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

メソッドの属性

メソッドの属性の目的

クラス定義で属性を指定して、メソッドの動作を特定の目的のためにカスタマイズすることができます。メソッドの属性を設定することにより、アクセス、可視性、実装などの特性を制御します。サブクラスは、スーパークラス メンバーの属性を継承しません。

メソッド属性の指定

メソッドの属性は、methods キーワードと同じ行に割り当てます。

methods (Attribute1 = value1, Attribute2 = value2,...)
   ...
end

属性の構文の詳細は、属性の指定を参照してください。

メソッドの属性の表

ユーザーは、メソッドの動作を属性により変更できます。メソッドは、以下の表にリストした属性をサポートします。

属性の値は、既定ではない値を指定する methods...end コード ブロック内で定義済みのすべてのメソッドに適用されます。

メソッドの属性

属性名

クラス

説明

Abstract

logical 既定 = false

true の場合、メソッドは実体化されません。メソッドには、引数を含むことができる構文行があります。この引数は、サブクラスがそのメソッドを実装するときに使用します。

  • サブクラスは、同数の入力引数と出力引数を定義する必要はありません。ただし、一般にサブクラスは、サブクラス メソッドを実装する場合に、同じシグネチャを使用します。

  • メソッドは、function 行の後にコメントをもつことができます。

  • このメソッドは、function または end キーワードを含みません。関数構文 (たとえば、[a,b] = myMethod(x,y)) のみを含みます。

Access

  • enumeration、default = public

  • meta.class オブジェクト

  • meta.class オブジェクトの cell 配列

以下のように設定し、このメソッドを呼び出すことができるコードを決めます。

  • public — アクセス制限なし

  • protected — クラスまたはサブクラスのメソッドからのアクセス

  • private — クラス メソッドからのアクセスのみ (サブクラスからは不可)

  • このメソッドにアクセスのあるクラスを一覧表示します。次の形式で meta.class オブジェクトとしてクラスを指定します。

    • 単一の meta.class オブジェクト

    • meta.class オブジェクトの cell 配列。空の cell 配列 {} は、private アクセスと同じです。

    クラス メンバーのアクセスを参照してください。

Hidden

logical 既定 = false

false の場合、methods または methodsview コマンドを使用して表示されるメソッドのリストにメソッドの名前が表示されます。true に設定した場合、そのメソッドの名前はこれらのリストに含まれず、ismethod はこのメソッド名に対し true を返しません。

Sealed

logical 既定 = false

true の場合、このメソッドはサブクラス内で再定義できません。サブクラス内で同じ名前のメソッドを定義しようとすると、エラーが発生します。

Static

logical 既定 = false

クラスのオブジェクトに依存せずオブジェクト引数を必要としないメソッドを定義するには、true に設定します。メソッドを呼び出すには、クラス名を classname.methodname のように使用するか、次のようにクラスのインスタンスを使用します。obj.methodname

静的メソッドで、詳細を説明します。

フレームワークの属性

特定のフレームワーク基底クラスを使用するクラスには、フレームワーク固有の属性があります。これらの属性の情報については、使用している特定の基底クラスのドキュメンテーションを参照してください。