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 プロパティは、クラスで定義されている関連するプロパティの名前に対応します。

プロパティの簡単な説明。文字ベクトルとして返されます。ユーザー定義クラスの場合、このプロパティのテキストはプロパティ定義のコード コメントから取得されます。コメントがない場合、このプロパティは空の文字ベクトルを返します。クラス プロパティのヘルプ テキストを含める方法の詳細については、カスタム ヘルプ テキストを参照してください。

プロパティの詳細な説明。文字ベクトルとして指定します。ユーザー定義クラスの場合、このプロパティのテキストはプロパティ定義のコード コメントから取得されます。コメントがない場合、このプロパティは空の文字ベクトルを返します。クラス プロパティのヘルプ テキストを含める方法の詳細については、カスタム ヘルプ テキストを参照してください。

プロパティの読み取り (取得) アクセス レベル。次のものとして返されます。

  • public — アクセス制限なし

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

  • private – (サブクラスからではなく) クラス メンバーからのみアクセス

  • このプロパティへの読み取りアクセスをもつクラスのリスト。次の形式の meta.class オブジェクトとして指定します。

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

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

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

データ型: enumerated | meta.class

プロパティの書き込み (設定) アクセス レベル。次のものとして返されます。

  • public — アクセス制限なし

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

  • private – (サブクラスからではなく) クラス メンバーからのみアクセス

  • immutable — コンストラクターによってのみプロパティを設定可能。詳細については、可変プロパティと不変プロパティを参照してください。

  • このプロパティへの書き込みアクセスをもつクラスのリスト。次の形式の meta.class オブジェクトとして指定します。

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

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

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

データ型: enumerated | meta.class

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

プロパティ値が定数か。logical true または false として返されます。true の場合、クラスのすべてのインスタンスでこのプロパティの値は同じです。詳細については、定数値をもつクラス プロパティの定義を参照してください。

プロパティが abstract か。logical true または false として指定します。true の場合、プロパティは実装されませんが、クラスは abstract です。詳細については、抽象クラスとクラス メンバーを参照してください。

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

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

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

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

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

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

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

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

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

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

データ型: logical

クラス定義で指定されている既定値。抽象、依存、および動的プロパティは、既定値を定義できません。

クラス定義で既定値がない場合、MATLAB は DefaultValue プロパティを表示しません。MATLAB:class:NoDefaultDefined エラーを避けるために、DefaultValue プロパティをクエリする前に HasDefault をテストしてください。

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

プロパティを定義するクラス。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 を使用して IntrospectionExample クラスのクラス プロパティについての情報を取得します。

IntrospectionExample のコード

classdef IntrospectionExample
    % IntrospectionExample  Performs basic functions on two numbers
    % This class can return the sum and product of its two properties.
    properties
        % a  First property
        % First of two numeric properties
        a {mustBeNumeric} = 0

        % b  Second property
        % Second of two numeric properties
        b {mustBeNumeric} = 0 
    end
    
    methods
        function sum = addNumbers(obj)
            % addNumbers  Sum the properties
            %   Finds the sum of properties a and b.
            sum = obj.a + obj.b;
        end
        function prod = multNumbers(obj)
            % multNumbers  Multiply the properties
            %   Finds the product of properties a and b.
            prod = obj.a*obj.b;
        end
    end
end

メタクラス インスタンスの作成および検査

IntrospectionExample のメタクラス インスタンスを作成します。mcPropertyList の最初のプロパティにアクセスして、meta.property オブジェクトを取得します。

mc = ?IntrospectionExample;
mc.PropertyList(1)
ans = 
  property with properties:

                    Name: 'a'
             Description: 'First property'
     DetailedDescription: '  First of two numeric properties'
               GetAccess: 'public'
               SetAccess: 'public'
               Dependent: 0
                Constant: 0
                Abstract: 0
               Transient: 0
                  Hidden: 0
           GetObservable: 0
           SetObservable: 0
                AbortSet: 0
             NonCopyable: 0
    PartialMatchPriority: 1
               GetMethod: []
               SetMethod: []
              HasDefault: 1
            DefaultValue: 0
              Validation: [1x1 meta.Validation]
           DefiningClass: [1x1 meta.class]

クラスがプロパティ値に対して実行する検証を確認します。

mc.PropertyList(1).Validation
ans = 
  Validation with properties:

                 Class: [0x0 meta.class]
                  Size: [1x0 meta.ArrayDimension]
    ValidatorFunctions: {@mustBeNumeric}

バージョン履歴

R2008a で導入

すべて展開する