Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

meta.method 类

包: meta
超类: meta.MetaData

关于类方法的信息

说明

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

meta.method 类是 handle 类。

类属性

Abstract
true
ConstructOnLoad
true

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

创建对象

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

例如,在以下代码中,将 ClassName 替换为要查询其方法的类的名称:

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

要从类实例中获取 meta.class 对象,请使用 metaclass 函数:

mco = metaclass(obj);

属性

全部展开

以字符向量形式返回的方法名称。

数据类型: char

当前不用于从注释中收集有关类的信息。

数据类型: char | string

当前不用于从注释中收集有关类的信息。

数据类型: char | string

Access 属性控制哪些代码有权调用此方法。

  • public - 不受限制的访问

  • protected - 从类或子类的方法进行访问

  • private - 仅通过类方法(而非从子类)进行访问

  • 可以访问此方法的类的列表,指定为 meta.class 对象,形式如下:

    • 单个 meta.class 对象

    • meta.class 对象元胞数组。空元胞数组 {}private 访问权限相同。

示例: method (Access = private)

数据类型: enumerated

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

classname.methodname()

或者使用类实例(如任何方法)来调用静态方法:

o.methodname()

请参阅静态方法

示例: method (Static)

数据类型: logical

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

  • 此方法不包含 functionend 关键字,仅包含函数语法(例如 [a,b] = myMethod(x,y)

  • 子类不必定义与父类相同数量的输入参数和输出参数。然而,语法确实指示了应实现哪些子类。

  • 该方法在语法行之后可带有注释。

示例: method (Abstract)

数据类型: logical

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

示例: method (Sealed)

数据类型: logical

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

数据类型: logical

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

数据类型: char | cell

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

数据类型: char | cell

定义此方法的类,以表示定义类的 meta.class 对象形式返回。从 meta.method 对象的角度来看,定义类始终是最具体的类。因此,如果某子类覆盖了继承的方法,则子类 meta.method 对象的定义类就是该子类。同样,超类 meta.method 对象的定义类是该超类。

数据类型: meta.class

示例

全部折叠

使用 meta.method 数据获取有关 matlab.mixin.Copyable 类的 copy 方法的信息。

mc =?matlab.mixin.Copyable;
copyInfo = findobj(mc.MethodList,"Name","copy")
copyInfo = 

  method with properties:

                   Name: 'copy'
            Description: ''
    DetailedDescription: ''
                 Access: 'public'
                 Static: 0
               Abstract: 0
                 Sealed: 1
                 Hidden: 0
             InputNames: {'rhs1'}
            OutputNames: {'lhs1'}
          DefiningClass: [1×1 meta.class]
在 R2008a 中推出