Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

クラスの属性

クラス属性の指定

以下の表は、クラスがサポートする属性の一覧です。クラスの動作は、属性を使用して変更できます。属性の値は、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 定義ブロックのクラス メンバーに指定されます。特定の属性の設定は、そのブロック内で定義されるすべてのメンバーに適用されます。複数の propertiesmethods、および events 定義ブロックを使用して、異なるクラスのメンバーに異なる属性設定を適用することができます。

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

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

属性の構文

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

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

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

クラス固有の属性

一部の MATLAB クラスには追加の属性が定義されており、それらの属性は、定義されているクラス階層でのみ使用できます。使用しているクラスでサポートされている追加の属性については、これらのクラスの特定のドキュメンテーションを参照してください。

関連するトピック