定义属性的语法格式如下所示,以properties关键字开头,以end关键字结束。
code.matlab
properties(SetAccess=protected)
Coefficients=[0 0 1]
end
其中,SetAccess=protected指定特性,Coefficients为属性名,[0 0 1]为默认值。
获取属性值的语法如下所示:
code.matlab
val=obj.PropertyName
给属性赋值的语法为:
code.matlab
obj.PropertyName=val
有两种方法可以初始化属性的值:
在属性定义里面初始化:MATLAB只计算一次并将同样的值赋给每个实例的属性。
在properties块中,可以控制单个属性的默认值。默认值可以是一个值,也可以是一个MATLAB表达式。表达式不能引用变量。例如:
code.matlab
classdef ClassName
properties
Prop1
Prop2='some text'
Prop3=sin(pi/12)
end
end
其中,Prop1没有赋值,默认值为空[ ],Prop2赋字符数组为默认值,Prop3赋表达式的结果为默认值。
如果类定义没有指定默认属性值,MATLAB将属性值设置为空的double型值([ ])。
在类的构造函数中初始化:MATLAB为每个实例计算赋值表达式,确保每个实例都有一个唯一值。例如:
code.matlab
classdef MyClass
properties
Prop1
end
methods
function obj=MyClass(intval)
obj.Prop1=intval;
end
end
end
在类的构造函数中赋属性值时,MATLAB对生成的每个对象计算赋值语句。