目录
类属性
指定类属性
所有类都支持下表中列出的属性。属性能够修改类的行为。属性值应用于 classdef 代码块中定义的类。
classdef (Attribute1 = value1, Attribute2 = value2,...) ClassName
...
end
类属性
特性名称 | 类 | 说明 |
---|---|---|
Abstract | logical (默认值为 false) | 如果指定为 true,则此类为抽象类(无法实例化)。 |
AllowedSubclasses | meta.class 对象或 meta.class 对象的元胞数组 | 列出可以从该类派生的子类。采用以下形式将子类指定为 meta.class 对象:
仅使用 ?ClassName 语法指定 meta.class 对象。 |
ConstructOnLoad | logical (默认值为 false) | 如果为 true,MATLAB® 将在从 MAT 文件加载对象时自动调用类构造函数。因此,需要将构造函数实现为在无参数调用时也不会产生错误。 |
HandleCompatible | logical (默认值为 false)(对于值类) | 如果指定为 true,此类可以用作句柄类的超类。根据定义,所有句柄类均为 HandleCompatible。 |
Hidden | logical (默认值为 false) | 如果为 true,此类不会出现在superclasses或help函数的输出中。 |
InferiorClasses | meta.class 对象或 meta.class 对象的元胞数组 | 使用此属性在类之间建立优先关系。使用 ? 运算符指定 meta.class 对象的元胞数组。 基础类的优先级始终低于用户定义的类,并且不会出现在此列表中。 |
Sealed | logical (默认值为 false) | 如果为 true,则无法对此类进行子类化。 |
框架特性 | 使用特定框架基类的类具有特定于框架的特性。有关这些特性的信息,请参阅您正在使用的特定基类的文档。 |
指定属性
类成员的属性由 classdef、properties、methods 和 events 定义代码块指定。具体的属性设置应用于该特定代码块中定义的所有成员。可以使用多个 properties、methods 和 events 定义代码块,对不同类成员应用不同属性设置。
超类属性值不会被继承
类属性设置不会被继承,因此超类属性值不影响子类。
特性语法
在圆括号中指定类属性值,用逗号分隔每个属性名称/属性值对组。属性列表始终跟随在 classdef 或类成员关键字之后,如下所示:
classdef (attribute-name = expression, ...) ClassName
properties (attribute-name = expression, ...)
...
end
methods (attribute-name = expression, ...)
...
end
events (attribute-name = expression, ...)
...
end
end
特定于类的属性
一些 MATLAB 类定义附加属性,这些属性只能用于定义这些属性的类层次结构。有关这些类支持的附加属性的信息,参考正在使用的类的相关文档。