初始化属性值
有两种基本方法来初始化属性值:
定义属性的默认值——MATLAB®分配相同的初始值的每个实例的属性。
在构造函数中设置属性值——为每个实例构造函数评价赋值语句,使实例有独特的初始属性值。
定义属性的默认值
你可以指定一个默认值个人财产使用一个值或一个表达式。表达式不能包含变量。这个例子展示了几种方法来定义一个属性的默认值。
classdefPropExample属性Prop1 Prop2 =“一些文本”Prop3 =罪(π/ 12)Prop4 = datetime。空Prop5(1,1)双{mustBePositive}= 1结束结束
请注意
MATLAB计算一个默认表达式首先需要属性值时(例如,当类首次实例化)。然后使用相同的默认值为一个类的所有实例。MATLAB不重新默认表达式,除非类定义从内存中清除。
处理对象为默认属性值
当你使用一个句柄类构造函数创建一个默认的属性值,MATLAB调用构造函数只有当类是第一次使用,然后使用相同的对象处理作为默认属性的所有实例。因为所有对象的句柄引用同一个对象,您所作的改变对处理对象的一个实例反映在所有实例的处理对象。初始化一个新的实例的属性值处理对象每次实例化类,在构造函数中指定属性值。
在构造函数中设置属性值
赋值到一个属性在类构造函数,引用的对象构造函数返回(输出变量obj
使用点符号)和属性名。
classdefMyClass属性Prop1结束方法函数obj = MyClass (intval中)obj。Prop1 = intval中;结束结束结束
当你分配一个值的属性类的构造函数,MATLAB计算每个对象创建的赋值语句。在构造函数中指定属性值如果你想要每个对象包含一个独特的属性值。
例如,ContainsHandle
分配一个唯一的处理对象的类MyHandleClass
来Prop1
为每一个实例。ContainsHandle
通过调用吗MyHandleClass
构造函数的构造函数。
classdefContainsHandle属性Prop1结束方法函数obj = ContainsHandle(键盘,valueSet) obj。Prop1 = MyHandleClass(键盘、valueSet);结束结束结束
构造函数方法的更多信息,请参阅引用对象的构造函数。
房地产之前验证建筑
MATLAB验证默认属性值赋值之前,在构造函数中值。默认值的分配属性
块和任何值设置的属性在类构造函数必须满足指定的验证。例如,PropInit
限制道具
一个标量积极翻倍,但它不指定一个默认值。默认情况下,MATLAB分配一个初始值的空的两倍。
classdefPropInit属性道具(1,1)双{mustBePositive}结束方法函数obj = PropInit positiveInput obj。支持= positiveInput;结束结束结束
调用类的构造函数与一个有效的值道具
仍然会导致一个错误,因为最初的空的一倍道具
。一个空的双不满足验证功能mustBePositive
。
obj = PropInit (2);
错误使用隐式属性的道具类的默认值“PropInit”:值必须是积极的。
为了避免这个问题,确保你的属性有默认值,满足你的验证,即使你打算在构造函数中覆盖这些值。