通过添加列举
块到类定义。例如平日
类枚举一周中的一整天。
classdef平日列举周一周二周三周四周五终止终止
执行matlab®在以下部分中,将平日
类定义.m
在路径上的文件。
使用类名和成员名引用枚举成员:
类名.成员名
例如,分配枚举成员平日
到变量今天
:
今天=平日。
今天
是类的变量平日
:
谁
名称大小字节类属性今天1x1 104平日
今天
今天=星期二
如果枚举类指定超类,则可以通过将对象传递给超类构造函数来将枚举对象转换为超类。但是,超类构造函数必须能够接受自己的类作为输入并返回超类的实例。matlab内置数字类,如uint32
,允许此转换。
例如,关系
类派生自uint32
内置类:
classdef轴承列举北(0)东(90)南(180)西(270)终止终止
分配方位,东方
变量的成员A.
:
a=方位。东;
通过A.
到超类构造函数并返回auint32
价值:
b=uint32(a);谁
名称大小字节类属性a 1x1 4轴承b 1x1 4 uint32
这个uint32
构造函数接受子类的对象关系
并返回一个类的对象uint32
.
像任何MATLAB类一样,在枚举类中定义方法。例如,定义一个名为今天是会议日
为了平日
枚举类。使用情况是用户在周二进行了经常性会议。该方法检查输入参数是否是一个实例平日
成员星期二
.
classdef平日列举周一周二周三周四周五终止方法功能tf=isMeetingDay(obj)tf=工作日。星期二==obj;终止终止终止
呼叫今天是会议日
以一个平日
类别:
今天=工作日。星期二;今天是会议日
ans=1
您还可以使用枚举成员作为方法的直接输入:
isMeetingDay(工作日、星期三)
ans=0
当您必须存储与枚举成员相关的数据时,将属性添加到枚举类。在类构造函数中设置属性值。例如,合成色素
类定义了三个属性。引用类成员时,类构造函数将输入参数的值分配给相应的属性。
classdef合成色素特性R G B终止方法功能c=合成色素(r,g,b)c.r=r;c、 G=G;c、 B=B;终止终止列举错误(1,0,0)注释(0,1,0)关键字(0,0,1)字符串(1,0,1)终止终止
当您引用枚举成员时,构造函数初始化属性值:
e=合成颜色。错误;e、 R
ans=1
因为合成色素
是一个值类(它不是从手柄
),只有类构造函数可以设置属性值:
e、 R=0
无法设置SyntaxColor的只读属性“R”。
有关定义属性的枚举类的详细信息,请参见可变句柄与不可变值枚举成员.
枚举块中的每条语句都是枚举成员的名称,后面可以跟一个参数列表。如果枚举类定义了构造函数,MATLAB将调用该构造函数来创建枚举实例。
MATLAB为所有未明确定义构造函数的所有枚举类提供默认构造函数。默认构造函数创建枚举类的实例:
如果枚举成员未定义输入参数,则不使用输入参数
使用枚举类中为该成员定义的输入参数
例如布尔
班级是0
对于布尔,不
和1.
对于布尔,是的
.
classdef布尔<逻辑列举否(0)是(1)终止终止
价值观0
和1.
我们是同班同学必然的
因为默认构造函数将参数传递给第一个超类。即,此语句:
n=布尔数;
结果打电话给必然的
这相当于构造函数中的以下语句:
功能obj=布尔值(val)obj@logical(瓦尔)终止
MATLAB只将成员参数传递给第一个超类。例如,假设布尔
派生自另一类:
classdefBool列举否(0)是(1)终止终止
这个米布尔
类可以添加一些专门的行为:
classdef米布尔方法功能布尔值=测试布尔值(obj)...终止终止终止
默认值布尔
构造函数的行为与定义的函数类似:
参数传递给第一个超类构造函数
没有传递给后续构造函数的参数
功能obj=布尔值(val)obj@logical(瓦尔)obj@MyBool终止