Main Content

meta.method クラス

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

MATLAB のクラス メソッドの記述

説明

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

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

クラスの属性

抽象型
true
ConstructOnLoad
true

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

作成

meta.method オブジェクトを直接インスタンス化することはできません。meta.method オブジェクトを meta.class オブジェクトの MethodList プロパティから取得します。MethodList には、meta.method オブジェクトの配列が含まれます。各クラス メソッドに対して 1 つのオブジェクトが対応します。

たとえば次のコードでは、ClassName を、クエリするメソッドのクラスの名前に置き換えます。

mco = ?ClassName;
mlist = mco.MethodList;
mlist(1).Name; % name of first method in the list

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

mco = metaclass(obj);

プロパティ

すべて展開する

メソッド名。文字ベクトルとして返されます。

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

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

メソッドのアクセス レベル。次のものとして指定します。

  • public — アクセス制限なし

  • protected — クラスまたはサブクラスのメソッドからのアクセス

  • private — (サブクラスからではなく) クラス メソッドのみによるアクセス

  • このメソッドへのアクセスをもつクラスのリスト。次の形式の meta.class オブジェクトとして指定します。

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

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

データ型: enumerated | meta.class

メソッドが静的か。logical true または false として返されます。true の場合、メソッドはクラスのオブジェクトに依存せず、入力としてオブジェクトを必要としません。

詳細については、静的メソッドを参照してください。

メソッドが抽象か。logical true または false として返されます。true の場合、メソッドは実装されませんが、引数を含めることができる構文行があります。サブクラスは、抽象メソッドのシグネチャに従ってメソッドを実装します。

メソッドがオーバーライド可能か。logical true または false で返されます。true の場合、このメソッドはサブクラス内で再定義できません。サブクラス内で同じ名前のメソッドを定義しようとすると、エラーになります。

メソッドが非表示か。logical true または false として返されます。false の場合、methods または methodsview コマンドを使用して表示されるメソッドのリストにメソッドの名前が表示されます。true に設定した場合は、メソッドの名前はこれらのリストに含まれず、コマンド ウィンドウでオブジェクトを表示する場合にも含まれません。

関数シグネチャで使用される入力引数の名前。文字ベクトルまたは文字ベクトルの cell 配列として返されます。

関数シグネチャで使用される出力引数の名前。文字ベクトルまたは文字ベクトルの cell 配列として返されます。

メソッドを定義するクラス。定義しているクラスを表す meta.class オブジェクトとして返されます。定義しているクラスは、meta.method オブジェクトから見ると、常に最も特定的なクラスです。したがって、サブクラスが継承されたメソッドをオーバーライドする場合、サブクラス meta.method オブジェクトを定義しているクラスはサブクラスです。同様に、スーパークラス meta.method オブジェクトを定義しているクラスはスーパークラスです。

すべて折りたたむ

meta.method を使用して 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 のメタクラス インスタンスを作成します。mcMethodList プロパティの最初のメソッドにアクセスして、meta.method オブジェクトを取得します。

mc = ?IntrospectionExample;
mc.MethodList(1)
ans = 
  method with properties:

                   Name: 'multNumbers'
            Description: 'Multiply the properties'
    DetailedDescription: '    Finds the product of properties a and b.'
                 Access: 'public'
                 Static: 0
               Abstract: 0
                 Sealed: 0
     ExplicitConversion: 0
                 Hidden: 0
             InputNames: {'obj'}
            OutputNames: {'prod'}
          DefiningClass: [1x1 meta.class]

バージョン履歴

R2008a で導入

すべて展開する