Main Content

meta.class クラス

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

MATLAB のクラスの記述

説明

meta.class クラスは、MATLAB® クラスについての説明的な情報を取得する方法を提供します。特定のクラスについて meta.class オブジェクトを作成することで、クラス定義についての情報を取得できます。

meta.class オブジェクトのいくつかのプロパティには、対応する MATLAB クラスで定義されたクラス属性の値が含まれています。これらのプロパティをクエリして、classdef ラインのクラス定義で構文的に指定されている情報を取得します。

他のプロパティには、クラスで定義されたプロパティ、メソッドおよびイベントのリストと、クラスがどのように定義されているかについての他の情報が含まれています。

meta.class オブジェクト プロパティの値を設定することはできません。プロパティをクエリすることができるだけです。

meta.class オブジェクトをクラスのインスタンスから、または以下のオプションを使用したクラス名を使用して作成します。

  • metaclass(obj) — 引数として渡されるオブジェクトを表す meta.class オブジェクトを返します。

  • ?ClassName - 名前の付いたクラスを表す meta.class オブジェクトを返します。

  • meta.class.fromName('ClassName') — この静的メソッドは、名前の付いたクラスを表す meta.class オブジェクトを返します。

コンストラクターを呼び出して meta.class オブジェクトを直接インスタンス化することはできません。

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

クラスの属性

抽象型
true
HandleCompatible
true

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

プロパティ

すべて展開する

クラス名。文字ベクトルとして返されます。このプロパティによって返される名前には、クラス パッケージが含まれます。

データ型: char

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

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

クラスが検査ツールに対して非表示か。logical 値 true または false として返されます。true に設定された場合、クラスはクラス名を表示する MATLAB コマンドまたはツールの出力に表示されません。ただし、プログラムでクラスにアクセスすることはできます。

データ型: logical

クラスがサブクラス化可能か。logical 値として返されます。Sealedtrue の場合、このクラスはサブクラス化できません。

データ型: logical

クラスの abstract 属性の値。logical 値として返されます。このプロパティの値は、クラス、任意のプロパティまたはメソッドで Abstract 属性が true に設定されている場合、true です。abstract クラスの詳細については、抽象クラスとクラス メンバーを参照してください。

データ型: logical

クラスが列挙型クラスか。logical 値として返されます。true の場合、このクラスは列挙型クラスです。列挙型クラスの詳細については、列挙クラスの定義を参照してください。

データ型: logical

読み込み時のコンストラクターの呼び出し。logical 値として返されます。true の場合、MATLAB は MAT ファイルからオブジェクトを読み込むときにクラス コンストラクターを自動的に呼び出します。ConstructOnLoad を有効にするには、コンストラクターは入力引数なしでの呼び出しをサポートしていなければなりません。詳細については、オブジェクトの保存と読み込みのプロセスを参照してください。

データ型: logical

クラスがハンドル互換か。logical 値として返されます。true の場合、このクラスはハンドル互換クラスです。ハンドル互換クラスの詳細については、ハンドル互換クラスを参照してください。

データ型: logical

このクラスの下位クラスとして指定されているクラス。meta.class オブジェクトの cell 配列として返されます。クラスの優先順位の詳細については、クラスの優先順位を参照してください。

データ型: meta.class

クラスを含むパッケージ。meta.package オブジェクトとして返されます。クラスがパッケージ内にない場合、このプロパティには空の meta.package オブジェクトが含まれています。パッケージの詳細については、パッケージによる名前空間の作成を参照してください。

データ型: meta.package

クラスで定義されているエイリアスのリスト。string 配列として返されます。エイリアスは最も古いものから最も新しいものの順にリストされます。

クラスでサブクラス化が制限されているか。logical true または false として返されます。MATLAB は、次の方法によってクラスでサブクラス化が制限されている場合、このプロパティを true に設定します。

  • Sealed 属性を true に設定

  • AllowedSubclasses 属性を使用して、このクラスをサブクラス化できるクラスを指定

サブクラス化の制限の詳細については、許可されたサブクラスの指定を参照してください。

データ型: logical

クラスで定義されているプロパティ。meta.property オブジェクトの配列として返されます。meta.property オブジェクトは、このクラスで定義される各プロパティ (継承されたパブリック プロパティと保護されたプロパティをすべて含む) を記述します。プロパティの詳細については、プロパティを参照してください。

データ型: meta.property

クラスで定義されているメソッド。meta.method オブジェクトの配列として返されます。meta.method オブジェクトは、このクラスで定義される各メソッド (継承されたパブリック メソッドと保護されたメソッドを含む) を記述します。メソッドの詳細については、クラス設計でのメソッドを参照してください。

データ型: meta.method

クラスで定義されているイベント (継承されたすべてのイベントを含む)。meta.event オブジェクトの配列として返されます。ハンドル クラスでのみイベントが定義できるため、値クラスの場合、このプロパティは空の meta.event オブジェクトです。すべての handle クラスは ObjectBeingDestroyed イベントを継承します。イベントの詳細については、イベントを参照してください。

データ型: meta.event

列挙型メンバーの名前と非表示ステータス。meta.EnumeratedValue オブジェクトの配列として返されます。対応するメンバー meta.EnumeratedValue オブジェクトの Name プロパティおよび Hidden プロパティにアクセスして情報を取得します。詳細については、列挙を参照してください。

データ型: meta.EnumeratedValue

このクラスの直接のスーパークラス。meta.class オブジェクトの配列として返されます。meta.class オブジェクトは、このクラスの派生元である直接の各スーパークラスについて記述します。サブクラス化の詳細については、サブクラス定義を参照してください。

データ型: meta.class

メソッド

すべて展開する

イベント

イベント名トリガーイベント データイベントの属性
InstanceCreated

このイベントは、meta.class で記述されるクラスのインスタンスが作成されるたびに発生します。

このイベントは、すべてのコンストラクター関数が実行を終了すると直ちに発生します。

event.ClassInstanceEvent

NotifyAccess: private

ListenAccess: public

InstanceDestroyed

このイベントは、meta.class で記述されるクラスのインスタンスが破棄されるたびに発生します。

このイベントは、いずれかのデストラクター関数が実行される直前に発生します。

event.ClassInstanceEvent

NotifyAccess: private

ListenAccess: public

すべて折りたたむ

イントロスペクションを使用して 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 のメタクラス インスタンスを作成します。

mc = ?IntrospectionExample
mc = 
  class with properties:

                     Name: 'IntrospectionExample'
              Description: 'Performs basic functions on two numbers'
      DetailedDescription: '  This class can return the sum and product of its two properties.'
                   Hidden: 0
                   Sealed: 0
                 Abstract: 0
              Enumeration: 0
          ConstructOnLoad: 0
         HandleCompatible: 0
          InferiorClasses: {0x1 cell}
        ContainingPackage: [0x0 meta.package]
                  Aliases: [0x1 string]
     RestrictsSubclassing: 0
             PropertyList: [2x1 meta.property]
               MethodList: [4x1 meta.method]
                EventList: [0x1 meta.event]
    EnumerationMemberList: [0x1 meta.EnumeratedValue]
           SuperclassList: [0x1 meta.class]

IntrospectionExample のプロパティの概要に、MethodList プロパティに記述された 4 つのメソッドがあることが示されます。mcMethodList プロパティにアクセスし、4 つのクラス メソッドのすべての名前を表示します。

for i = 1:4
mc.MethodList(i).Name
end
ans = 
'multNumbers'
ans = 
'addNumbers'
ans = 
'IntrospectionExample'
ans = 
'empty'

バージョン履歴

R2008a で導入

すべて展開する