このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
プロパティの属性
プロパティの属性の目的
クラス定義で属性を指定すると、特定の目的のためにプロパティの動作をカスタマイズできます。属性を設定することにより、プロパティのアクセス、データ ストレージ、可視性などの特性を制御します。サブクラスは、スーパークラス メンバーの属性を継承しません。
プロパティ属性の指定
プロパティの属性は、properties
キーワードと同じ行に割り当てます。
properties (Attribute1 = value1, Attribute2 = value2,...) ... end
たとえば、private
アクセスをもつプロパティ Data
を定義します。
properties (Access = private) Data end
値が true
である属性には、より簡単な構文を使用できます。属性名のみの場合は true、属性名に not 演算子 (~) が追加されている場合は false を意味します。たとえば、以下のブロックでは抽象プロパティを定義しています。
properties (Abstract)
...
end
プロパティの属性の表
すべてのプロパティは、次の表に示した属性をサポートします。属性の値は、既定ではない値を指定する properties...end
コード ブロック内で定義済みのすべてのプロパティに適用されます。明示的に定義されていない属性は既定値を使用します。
プロパティの属性
属性 | 値 | 追加情報 |
---|---|---|
|
| ハンドル クラスでは、 詳細については、プロパティ値が変化しない場合の代入を参照してください。 |
|
| Abstract プロパティは、set access または get アクセス メソッドを定義できません。プロパティ アクセス メソッドを参照してください。 Abstract プロパティは、初期値を定義できません。 シールされたクラスは抽象メンバーを定義できません。 |
|
|
詳細については、クラス メンバーのアクセスを参照してください。 |
|
| サブクラスは定数プロパティを継承はしますが、変更はできません。 定数プロパティは依存プロパティとしても定義できません。
詳細は、定数値をもつクラス プロパティの定義を参照してください。 |
|
| 依存プロパティの set メソッドを定義できますが、set メソッドは実際にはプロパティの値を設定できません。別のプロパティの値を設定するなど、他のアクションを実行できます。例については、依存プロパティをもつ set メソッドを使用するケースを参照してください。 依存プロパティの get メソッドから返される値は、 |
|
|
MATLAB のコマンド ウィンドウには、 すべてのサブクラスは、プロパティの 詳細については、クラス メンバーのアクセスを参照してください。 |
|
| 詳細については、プロパティの設定とクエリのイベントを参照してください。 |
|
| MATLAB のコマンド ウィンドウには、Hidden 属性が true のプロパティの名前や値は表示されません。ただし、クラス ダイアグラム ビューアー アプリには非表示のプロパティも表示されます。 |
|
| ハンドル クラスでのみ 詳細については、コピーのプロパティの排除を参照してください。 |
| 正の整数 – |
詳細については、プロパティ名の部分一致に対する優先順位の設定を参照してください。 |
|
| すべてのサブクラスは、プロパティの 詳細については、クラス メンバーのアクセス、オブジェクトを含んだプロパティ、および可変プロパティと不変プロパティを参照してください。 |
|
| 詳細については、プロパティの設定とクエリのイベントを参照してください。 |
|
| 詳細については、オブジェクトの保存と読み込みのプロセスを参照してください。 |
フレームワークの属性 | 特定のフレームワーク基底クラスを使用するクラスには、フレームワーク固有の属性があります。これらの属性の情報については、使用している特定の基底クラスのドキュメンテーションを参照してください。 |
プロパティ アクセス リスト
Access
、GetAccess
、および SetAccess
属性には meta.class
インスタンスのリストを使用できます。たとえば、以下のクラスは、Prop1
および Prop2
プロパティのアクセス リストを宣言します。
classdef PropertyAccess properties (GetAccess = {?ClassA, ?ClassB}) Prop1 end properties (Access = ?ClassC) Prop2 end end
Prop1
の場合は、以下のようになります。
クラス
ClassA
およびClassB
には、Prop1
への get アクセスがあります。ClassA
およびClassB
のすべてのサブクラスには、Prop1
への get アクセスがあります。アクセス リストは継承されないため、
PropertyAccess
のサブクラスは、そのアクセスを明示的に定義しない限り、Prop1
への get アクセスはありません。
Prop2
の場合は、以下のようになります。
ClassC
にはProp2
への get および set アクセスがあります。ClassC
のすべてのサブクラスには、Prop2
への get および set アクセスがあります。アクセス リストは継承されないため、
PropertyAccess
のサブクラスは、そのアクセスを明示的に定義しない限り、Prop2
にはアクセスできません。