属性的语法

定义属性的语法格式如下所示,以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对生成的每个对象计算赋值语句。