ドキュメンテーション

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

クラスの属性

クラス属性の指定

以下の表は、クラスがサポートする属性の一覧です。クラスの動作は、属性を使用して変更できます。属性の値は、classdef ブロック内で定義されているクラスに適用されます。

classdef (Attribute1 = value1, Attribute2 = value2,...) ClassName
   ...
end
属性の構文の詳細は、属性の指定を参照してください。

クラスの属性

属性名

クラス

説明

Abstract

logical

(既定値 = false)

true に設定した場合、このクラスは抽象クラスになります (インスタンス化できません)。

詳細は、抽象クラスを参照してください。

AllowedSubclasses

meta.class オブジェクトまたは meta.class オブジェクトの cell 配列

このクラスをサブクラスできるクラスを一覧表示します。サブクラスを次の形式で meta.class オブジェクトとして指定します。

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

  • meta.class オブジェクトの cell 配列。空の cell 配列 {}Sealed クラスと同じです (サブクラスなし)。

?ClassName 構文のみを使って、meta.class オブジェクトを指定します。

詳細は、許可されたサブクラスの指定を参照してください。

ConstructOnLoad

logical

(既定値 = false)

true に設定されている場合、MATLAB® は、MAT ファイルからオブジェクトを読み込むときにクラス コンストラクターを呼び出します。したがって、引数なしで呼び出してもエラーが生じないようにコンストラクターを実装します。

詳細は、読み込み時のオブジェクトの初期化を参照してください。

HandleCompatible

logical

(既定値 = false) 値クラスの場合

true として指定されている場合、このクラスはハンドル クラスのスーパー クラスとして使用できます。すべてのハンドル クラスは、定義では HandleCompatible です。詳細は、ハンドル互換クラスを参照してください。

Hidden

logical

(既定値 = false)

true の場合、このクラスは関数 superclasses または help の出力に表示されません。

InferiorClasses

meta.class オブジェクトまたは meta.class オブジェクトの cell 配列

クラスの先行関係を定めるためにこの属性を使用します。? 演算子を使用して、meta.class オブジェクトの cell 配列を指定します。

基本クラスは常にユーザー定義クラスの下位クラスになり、この一覧には現れません。

クラスの優先順位オーバーロードされたグラフィックス関数の優先引数を参照してください。

Sealed

logical

(既定値 = false)

true の場合、このクラスはサブクラス化できません。

属性の指定

属性は、classdefpropertiesmethodsevents 定義ブロックのクラス メンバーに指定されます。特定の属性の設定は、そのブロック内で定義されるすべてのメンバーに適用されます。複数の properties 定義ブロックを使用して、異なるプロパティに異なる属性設定を適用することができます。

継承されないスーパークラス属性

クラス属性は継承されません。したがって、スーパークラス属性はサブクラスには影響を及ぼしません。

属性の構文

クラスの属性の値は、各属性の名前/属性の値のペアをコンマで区切り、かっこ内に指定します。以下に示すように、属性のリストは、必ず classdef またはクラス メンバー キーワードに続けます。

classdef (attribute-name = expression, ...) ClassName

   properties (attribute-name = expression, ...)
      ...
   end
   methods (attribute-name = expression, ...)
      ...
   end
   events (attribute-name = expression, ...)
      ...
   end
end

関連するトピック