ドキュメンテーション

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

プロパティの属性

プロパティの属性の目的

クラス定義で属性を指定することにより、特定の目的のためにプロパティの動作をカスタマイズできます。属性を設定することにより、プロパティのアクセス、データ ストレージ、可視性などの特性を制御します。サブクラスは、スーパークラス メンバーの属性を継承しません。

プロパティ属性の指定

プロパティの属性は、properties キーワードと同じ行に割り当てます。

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

たとえば、Data プロパティに private アクセスを付与します。

properties (Access = private)
   Data
end

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

プロパティの属性の表

すべてのプロパティは、次の表に示した属性をサポートします。属性の値は、既定ではない値を指定する properties...end コード ブロック内で定義済みのすべてのプロパティに適用されます。

プロパティの属性

属性名

クラス

説明

AbortSet

logical

既定 = false

true の場合、MATLAB® は新しい値が現在値と同じ場合はプロパティ値を設定しません。MATLAB は、プロパティ set メソッドが存在してもそれを呼び出すことはありません。

ハンドル クラスでは AbortSettrue に設定する場合も、プロパティ PreSetPostSet イベントのトリガーを防ぐことができます。

プロパティ値が変化しない場合の代入を参照してください。

Abstract

logical

既定 = false

true である場合、このプロパティは実装されません。ただし、具象サブクラスは、Abstracttrue に設定せずにこのプロパティを再定義しなければなりません。

  • Abstract プロパティは、set access または get アクセス メソッドを定義できません。プロパティ アクセス メソッドを参照してください。

  • Abstract プロパティは、初期値を定義できません。既定値を割り当てるを参照してください。

  • すべてのサブクラスは、プロパティの SetAccessGetAccess 属性に、スーパークラスと同じ値を指定する必要があります。

  • Abstract=true は、クラス属性を Sealed=false (既定) とした場合に使用します。

Access (書き込み専用。この meta.property プロパティをクエリできません。クエリには GetAccess および SetAccess を使用してください)。

  • enumeration、default = public

  • meta.class オブジェクト

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

SetAccessGetAccess が同じ値をもつように設定するには、Access を使用します。SetAccessGetAccess の値を直接クエリする (Access ではない)。

public – アクセス制限なし

protected – クラスまたはサブクラスからのアクセス

private - クラス メンバーからのアクセスのみ (サブクラスからは不可)

このプロパティに get および set アクセスのあるクラスのリスト。次の形式で meta.class オブジェクトとしてクラスを指定します。

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

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

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

Constant

logical

既定 = false

クラスのすべてのインスタンスにおいて、このプロパティ値を 1 つの値にする場合は、true に設定します。

  • サブクラスは constant プロパティを継承はしますが、変更はできません。

  • Constant プロパティは、Dependent になることはできません。

  • SetAccess は無視されます。

詳細は、定数値をもつクラス プロパティの定義を参照してください。

Dependent

logical

既定 = false

false の場合、プロパティ値はオブジェクトに保存されます。true の場合、プロパティ値はオブジェクトには保存されません。関数 set および関数 get は、プロパティ名を使用するオブジェクトにインデックスを適用することではプロパティにアクセスできません。

MATLAB のコマンド ウィンドウには、get メソッドで定義されない Dependent プロパティの名前と値は表示されません (スカラー オブジェクトのみが表示されます)。

依存プロパティの get メソッドから返される値は、isequal を使ってオブジェクトの等価性をテストする際に考慮されません。

GetAccess

enumeration

既定 = public

public — アクセス制限なし

protected — クラスまたはサブクラスからのアクセス

private — クラス メンバーからのアクセスのみ (サブクラスからは不可)

このプロパティに get アクセスのあるクラスを一覧表示します。次の形式で meta.class オブジェクトとしてクラスを指定します。

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

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

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

MATLAB のコマンド ウィンドウには、protected または privateGetAccess をもつプロパティ、あるいは Hidden 属性が true であるプロパティの名前や値は表示されません。

struct 関数は、オブジェクトを structs に変換するときにすべてのプロパティのフィールドを定義します。

GetObservable

logical

既定 = false

true に設定されており、かつハンドル クラス プロパティである場合、このプロパティにアクセスするためのリスナーを作成できます。このリスナーは、プロパティ値が必要となるときに呼び出されます。プロパティの設定とクエリのイベントを参照してください。

Hidden

logical

既定 = false

プロパティをプロパティ リストに表示できるかどうかを決定します (たとえば、プロパティ インスペクター、set または get の呼び出しなど)。

MATLAB のコマンド ウィンドウには、Hidden 属性が true のプロパティ、または private あるいは protectedGetAccess をもつプロパティの名前や値は表示されません。

NonCopyable

logical

既定 = false

オブジェクトをコピーするときにプロパティ値をコピーできるかどうかを決定します。

ハンドル クラスでのみ NonCopyabletrue に設定できます。

詳細は、コピーのプロパティの排除を参照してください。

SetAccess

enumeration

既定 = public

public — アクセス制限なし

protected — クラスまたはサブクラスからのアクセス

private — クラス メンバーからのアクセスのみ (サブクラスからは不可)

immutable — プロパティはコンストラクター内でのみ設定できます。

可変プロパティと不変プロパティを参照してください。

このプロパティに set アクセスのあるクラスを一覧表示します。次の形式で meta.class オブジェクトとしてクラスを指定します。

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

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

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

SetObservable

logical

既定 = false

true に設定されており、かつハンドル クラス プロパティである場合、このプロパティにアクセスするためのリスナーを作成できます。このリスナーは、プロパティ値が変更される場合に呼び出されます。プロパティの設定とクエリのイベントを参照してください。

Transient

logical

既定 = false

true の場合、オブジェクトがファイルに保存されるときに、プロパティ値は保存されません。オブジェクトの保存方法の詳細は、オブジェクトの保存と読み込みのプロセスを参照してください。

関連するトピック