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