Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

meta.method 类

命名空间: meta
超类: meta.MetaData

描述 MATLAB 类方法

描述

meta.method 类提供有关 MATLAB® 类方法的信息。meta.method 类的属性对应于在类定义中根据语法指定的方法特性和其他信息。所有属性都为只读属性。

meta.method 类是一个 handle 类。

类属性

Abstract
true
ConstructOnLoad
true

有关类属性的信息,请参阅类属性

创建对象

您不能直接对 meta.method 对象进行实例化。请通过 meta.class 对象的 MethodList 属性获取 meta.method 对象。MethodList 属性包含一个 meta.method 对象数组,每个类方法对应一个对象。

例如,在以下代码中,将 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 对象元胞数组。空元胞数组 {}private 访问权限相同。

数据类型: enumerated | meta.class

是否为静态方法,以逻辑值 truefalse 形式返回。当为 true 时,该方法不依赖于类的对象,也不要求对象作为输入。

有关详细信息,请参阅静态方法

是否为抽象方法,以逻辑值 truefalse 形式返回。如果为 true,则该方法没有实现,但该方法有可以包含参数的语法行。子类在该抽象方法签名之后实现方法。

此方法是否可覆盖,以逻辑值 truefalse 形式返回。如果设置为 true,则无法在子类中重新定义方法。尝试在子类中定义同名的方法将会导致错误。

此方法是否隐藏,以逻辑值 truefalse 形式返回。设置为 false 时,方法名称将显示在使用 methodsmethodsview 命令显示的方法列表中。设置为 true 时,方法名称不包括在这些列表中,在命令行窗口中显示对象时也不显示方法名称。

函数签名中使用的输入参数的名称,以字符向量或字符向量元胞数组形式返回。

函数签名中使用的输出参数的名称,以字符向量或字符向量元胞数组形式返回。

定义方法的类,以表示定义类的 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 中推出

全部展开