主要内容

属性集的方法

属性访问方法概述

有关属性访问方法的概述,请参见属性访问方法

属性集方法语法

MATLAB®每当赋值给属性时,调用该属性的set方法。

请注意

不能直接调用属性访问方法.当你访问属性值时,MATLAB调用这些方法。

属性集方法具有以下语法,其中PropertyName属性的名称。

对于一个值类:

方法函数obj =。PropertyName(obj,值)……结束
  • obj-属性被赋值的对象

  • 价值—分配给属性的新值

值类集合函数必须将修改后的对象返回给调用函数。句柄类不需要返回修改后的对象。

对于句柄类:

方法函数集。PropertyName(obj,值)……结束

为属性集方法使用默认方法属性。定义set方法的方法块不能指定属性。

验证属性设置值

使用属性集方法验证分配给属性的值。属性set方法可以在执行存储新属性值所需的任何操作之前,对输入值执行错误检查等操作。

classdefMyClass属性Prop1结束方法函数obj = set.Prop1 (obj,值)如果(值> 0)obj。Prop1 =价值;其他的错误('属性值必须为正'结束结束结束结束

有关属性集方法的示例,请参见将属性限制为特定的值

当Set方法被调用时

如果一个属性集方法存在,MATLAB调用它,每当一个值被赋给该属性。但是,在以下情况下,MATLAB不调用属性集方法:

  • 从属性集方法内部将值赋给属性,以防止对set方法的递归调用。但是,由set方法调用的函数进行的属性赋值确实调用了set方法。

  • 在调用对象构造函数之前的对象初始化过程中,MATLAB为属性分配一个默认值。

  • 当MATLAB复制一个值对象(任何对象不是处理),当从一个对象复制属性值到另一个对象时,MATLAB不调用set或get方法。

  • 属性值与当前值相同时,对属性值进行的任何赋值操作AbortSet属性是真正的.看到属性值不变时的赋值有关此属性的详细信息。

在构造函数中设置属性值

在构造函数中设置属性值将导致调用属性集方法。例如,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"

相关的话题