类的特性如表2-1所示。定义特性,可以修改类的行为。特性的值在classdef块中进行定义。
code.matlab
classdef(Attribute1=value1, Attribute2=value2,...) ClassName
...
end
表2-1 类的特性
| 特性名称 | 类 | 描 述 |
|---|---|---|
| Abstract | logical(默认值为=false) | 如果指定为true,该类为抽象类,无法实例化。 |
| AllowedSubclasses | meta.class对象或meta.class对象构成的单元数组 | 列出可以作为本类父类的类。指定子类为下面形式的meta.class对象: 单一的meta.class对象。 meta.class对象构成的单元数组。一个空的单元数组{},与Sealed类等同。 |
| ConstructOnLoad | logical(默认值为=false) | 如果为true,MATLAB从MAT文件载入对象时调用类的构造函数。这样,实现构造函数,从而它在没有参数的情况下被调用时不会生成出错信息。 |
| HandleCompatible | 对于值类,logical(默认值为=false) | 指定为true时,该类可以用作句柄类的父类。 |
| Hidden | logical(默认值为=false) | 如果为true,该类不会出现在superclasses或help函数的输出中。 |
| InferiorClasses | meta.class对象或meta.class对象构成的单元数组 | 使用本特性建立类的优先关系。 |
| Sealed | logical(默认值为=false) | 如果为true,该类不能被子类化。 |
类成员的特性在classdef, properties, methods和events定义块中指定。语法格式如下:
code.matlab
classdef(attribute-name=expression, ...) ClassName
properties(attribute-name=expression, ...)
...
end
methods(attribute-name=expression, ...)
...
end
events(attribute-name=expression, ...)
...
end
end