有关属性访问方法的概述,请参见属性访问方法
MATLAB®每当给属性赋值时,调用属性的set方法。
请注意
不能直接调用属性访问方法.MATLAB在访问属性值时调用这些方法。
属性集方法具有以下语法,其中PropertyName
是属性的名称。
对于值类:
方法函数obj =。PropertyName(obj,值)……结束
obj
—属性被赋值的对象
价值
—分配给属性的新值
值类集合函数必须将修改后的对象返回给调用函数。句柄类不需要返回修改后的对象。
对于句柄类:
方法函数集。PropertyName(obj,值)……结束
对属性集方法使用默认方法属性。定义set方法的方法块不能指定属性。
使用属性集方法验证分配给属性的值。属性集方法可以在采取存储新属性值所需的任何操作之前,对输入值执行错误检查等操作。
classdefMyClass属性Prop1结束方法函数obj = set.Prop1 (obj,值)如果(值> 0)Prop1 =价值;其他的错误(“属性值必须为正”)结束结束结束结束
有关属性集方法的示例,请参见将属性限制为特定的值.
如果存在一个属性集方法,MATLAB将在给该属性赋值时调用该方法。但是,MATLAB在以下情况下不调用属性集方法:
在构造函数中设置属性值将导致调用属性集方法。例如,PropertySetMethod
类定义的属性集方法Prop1
财产。
classdefPropertySetMethod属性Prop1 =“默认字符串”结束方法函数obj = PropertySetMethod(str)如果Nargin > 0 obj。Prop1 = str;结束结束函数obj = set.Prop1(obj,str)Prop1 = str;流(的设置。Prop1方法调用。Prop1 = % s \ n 'obj。Prop1);结束结束结束
如果不带输入参数调用类构造函数,MATLAB不会调用集。Prop1
方法。
>> o = PropertySetMethod
o = PropertySetMethod with properties: Prop1: "Default String"
在构造函数中设置属性值将导致对属性集方法的调用。
>> o =“新字符串”)
集。Prop1方法调用。o = PropertySetMethod with properties: Prop1: "New string"
如果你将对象复制到另一个变量,MATLAB不会调用属性集方法,即使右边对象在赋值中使用了该属性的非默认值:
一个= o;a.Prop1
a.Prop1 ans = "New String"