Main Content

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

meta.property クラス

パッケージ: meta
スーパークラス: meta.MetaData

MATLAB クラスのプロパティの記述

説明

meta.property クラスは、MATLAB® のクラス プロパティについての情報を提供します。meta.property クラスのプロパティにはプロパティ属性の値と、クラス定義で構文的に指定されているその他の情報が含まれています。プロパティはすべて読み取り専用です。

meta.property クラスは handle クラスです。

クラスの属性

抽象型
true
ConstructOnLoad
true

クラス属性の詳細については、クラスの属性を参照してください。

作成

meta.property オブジェクトを直接インスタンス化することはできません。meta.property オブジェクトを meta.class PropertyList プロパティから取得します。このプロパティには、meta.property オブジェクトの配列が含まれます。各クラス プロパティに対して 1 つのオブジェクトが対応します。たとえば、ClassName をクエリするプロパティのクラスの名前に置き換えます。

mco = ?ClassName;
plist = mco.PropertyList;
mp = plist(1); % meta.property for first property in list

関数 metaclass を使用して、クラス インスタンスから meta.class オブジェクトを取得します。

mco = metaclass(obj);

プロパティ

すべて展開する

プロパティ名。文字ベクトルとして返されます。meta.property Name プロパティは、クラスで定義されている関連するプロパティの名前に対応します。

データ型: char

現在はコメントからのクラスについての情報の収集は使用されていません。

データ型: char

現在はコメントからのクラスについての情報の収集は使用されていません。

データ型: char

プロパティ値をクエリできるコード。次のいずれかとして返されます。

public – アクセス制限なし

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

private – クラス メンバーからのみアクセス

このプロパティへのアクセスが許可されているクラスのリスト。次の形式で meta.class オブジェクトとしてクラスを指定します。

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

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

詳細については、クラス メンバーのアクセスを参照してください。

例: properties (GetAccess = protected)

データ型: enumerated | meta.class

このプロパティを設定できるコードの値。次のいずれかとして返されます。

public – アクセス制限なし

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

private – クラス メンバーからのみアクセス

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

詳細については、可変プロパティと不変プロパティを参照してください。

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

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

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

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

例: properties (SetAccess = protected)

データ型: enumerated | meta.class

プロパティの値が他の値に依存しているか。logical true または false として返されます。false (既定値) の場合、プロパティの値はオブジェクトに保存されています。true の場合、プロパティ値はオブジェクトに保存されません。関数 set と get は、プロパティ名を使用してオブジェクトにインデックス付けする方法では、プロパティにアクセスできません。dependent プロパティの値は、他の値に依存します。dependent プロパティはアクセス方法を定義しなければなりません。詳細については、依存プロパティの set および get メソッドを参照してください。

例: properties (Dependent = true)

データ型: logical

プロパティ値が定数か。logical true または false として返されます。true の場合、クラスのすべてのインスタンスで、このプロパティの値は 1 つのみです。

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

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

  • SetAccess は無視されます。

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

例: properties (Constant = true)

データ型: logical

プロパティが abstract か。logical true または false として指定します。true の場合、プロパティは実装されませんが、クラスは abstract です。

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

  • Abstract プロパティは、初期値を定義できません。 既定値を割り当てる

  • すべてのサブクラスは、プロパティの SetAccessGetAccess 属性に、スーパークラスと同じ値を指定しなければなりません。

  • クラス属性を Sealed=false (既定の設定) とした場合、Abstract=true を使用しなければなりません。

例: properties (Abstract = true)

データ型: logical

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

例: properties (Transient = true)

データ型: logical

プロパティがプロパティ リストから非表示であるか。logical true または false として返されます。Hidden は、プロパティがプロパティ リスト (たとえばプロパティ インスペクターや properties の呼び出しなど) で表示されるかどうかを決定します。非表示のプロパティは既定のオブジェクト表示には表示されません。

例: properties (Hidden = true)

データ型: logical

リスナーがプロパティの get イベントを受信できるか。logical true または false として返されます。true の場合で、かつそれが handle クラスのプロパティの場合、プロパティの値がクエリされたときに実行するリスナーを作成できます。MATLAB は、プロパティの値がクエリされるといつでもリスナーを呼び出します。詳細については、プロパティの設定とクエリのイベントを参照してください。

例: properties (GetObservable = true)

データ型: logical

リスナーがプロパティの set イベントを受信できるか。logical true または false として返されます。true の場合で、かつそれが handle クラスのプロパティの場合、プロパティの値が設定されたときに実行するリスナーを作成できます。MATLAB は、プロパティの値が変更されるといつでもリスナーを呼び出します。詳細については、プロパティの設定とクエリのイベントを参照してください。

例: properties (SetObservable = true)

データ型: logical

値が変更されない場合にプロパティが設定されるか。logical true または false として返されます。true の場合、新しい値が現在の値と同じ場合には、プロパティの値の設定は中止されます。プロパティが handle クラスに属している場合、AbortSettrue に設定することで、プロパティの PreSet イベントおよび PostSet イベントのトリガーは抑止されます。

例: properties (AbortSet = true)

データ型: logical

プロパティがコピー可能か。logical true または false として返されます。オブジェクトがコピーされるときにプロパティがコピーされるかどうかを指定します (handle クラスのみ)。既定では、handle オブジェクトをコピーすると、そのオブジェクトの具象プロパティはコピーされます。詳細については、コピーのプロパティの排除を参照してください。

例: properties (NonCopyable = true)

データ型: logical

名前の部分一致の優先順位。数値として返されます。matlab.mixin.SetGet のサブクラスと共に使用し、set メソッドおよび get メソッドの引数で使用されるプロパティ名の部分一致の相対的な優先順位を定義します。既定値は 1 です。値を大きくすると低い優先順位が割り当てられます。

詳細については、プロパティ名の部分一致に対する優先順位の設定を参照してください。

例: properties (PartialNatchPriority = 2)

データ型: positive integer

プロパティの get メソッド。関数ハンドルまたは空の値として返されます。このプロパティに関連付けられた get メソッドの関数ハンドル。クラス定義で get メソッドが指定されていない場合、値は空です。詳細については、プロパティの get メソッドを参照してください。

データ型: function_handle

プロパティの set メソッド。関数ハンドルまたは空の値として返されます。このプロパティに関連付けられた set メソッドの関数ハンドル。クラス定義で set メソッドが指定されていない場合、値は空です。詳細については、プロパティ の set メソッドを参照してください。

データ型: function_handle

プロパティが既定値を定義しているか。logical true または false として返されます。true の場合、プロパティはクラス定義で既定値を定義しています。MATLAB:class:NoDefaultDefined エラーを避けるために、DefaultValue プロパティをクエリする前に HasDefault をテストしてください。

データ型: logical

クラス定義で指定されている既定値。指定されている値として返されます。抽象、依存、および動的プロパティは、既定値を定義できません。既定値は、そのプロパティについて指定されている検証を満たさなければなりません。プロパティ検証の詳細については、プロパティ値の検証を参照してください。クラス定義で既定値がない場合、MATLAB は DefaultValue プロパティを表示しません。

クラス定義で既定値が指定されていないプロパティでは、DefaultValue へのアクセスを試みると MATLAB:class:NoDefaultDefined エラーが発生します。クラスでそのプロパティの既定値が定義されているかどうかを判別するには、HasDefault プロパティを使用します。

例: Prop = 7

データ型: any

プロパティについて定義されている検証。meta.Validation オブジェクトとして返されます。このプロパティには、このプロパティによって定義されている検証を記述している meta.Validation オブジェクトが含まれています。プロパティで検証が定義されていない場合、このプロパティには空の meta.Validation オブジェクトが含まれます。

データ型: meta.Validation

プロパティを定義するクラス。meta.class オブジェクトとして返されます。meta.class オブジェクトは、このプロパティを定義するクラス (スーパークラスの場合がある) を表します。

データ型: meta.class

イベント

イベント名トリガーイベント データイベントの属性
PreGetイベントはプロパティの値がクエリされる直前に発生します。event.PropertyEvent

NotifyAccess: private

ListenAccess: public

PostGetイベントはプロパティの値がクエリされた直後に発生します。event.PropertyEvent

NotifyAccess: private

ListenAccess: public

PreSetイベントはプロパティの値が変更される直前に発生します。event.PropertyEvent

NotifyAccess: private

ListenAccess: public

PostSetイベントはプロパティの値が変更された直後に発生します。event.PropertyEvent

NotifyAccess: private

ListenAccess: public

すべて折りたたむ

meta.Property オブジェクトのプロパティを使用して、どのクラスのプロパティが読み取り専用か判別できます。

MyClass という名前のクラスの meta.class オブジェクトを取得します。

mc = ?MyClass;

findobj を使用して、meta.class PropertyList プロパティに含まれている meta.property オブジェクトのリストを検索します。この findobj の呼び出しは、読み取り専用のプロパティの名前を返します。

findobj(mc.PropertyList,'GetAccess','public','-AND','-NOT','SetAccess','public').Name
R2008a で導入