主要内容

包含对象的属性

将对象分配为默认属性值

马铃薯®加载类时只评估属性默认值。每次创建该类的对象时,MATLAB都不会重新评估分配。如果将对象分配为类定义中的默认属性值,则Matlab在加载类时仅调用该对象的构造函数。

笔记

只有在首次需要该值时才发生属性默认值的评估,并且当Matlab首次初始化类时,才会发生一次。MATLAB每次创建类别的实例时都不会重新评估表达式。

有关评估您称为属性默认值的表达式的更多信息,请参阅当matlab评估表达时

分配给包含对象的只读属性

当类定义具有私有或受保护的属性时setaccess.,该属性包含一个本身具有属性的对象,赋值行为取决于属性是否包含句柄或值对象:

  • 处理对象 - 您可以在只读属性中的句柄对象上设置属性

  • 值对象 - 您无法在只读属性中包含的值对象上设置属性。

赋值行为

这些类说明了赋值行为:

  • readonlyprops.- 类具有两个只读属性。类构造函数分配类型的句柄对象汉语到了PrainHandle.属性和类型的值对象val到了Propvalue.财产。

  • 汉语- 处理公共财产的课程

  • val- 具有公共财产的价值课程

Classdef.readonlyprops.特性(setaccess = private)prophandle propvalue结尾方法功能obj = readonlyprops obj.prophandle = hanclass;obj.propvalue = valclass;结尾结尾结尾Classdef.Hanclass <句柄特性HPROP.结尾结尾Classdef.val特性vprop.结尾结尾

创建一个实例readonlyprops.班级:

a = readonlyprops.
a =具有属性的readonlyprops:prophandle:[1x1 hanclass] propvalue:[1x1 valclass]

使用私人PrainHandle.属性设置“属性”汉语它包含的对象:

类(A.Prophandle.hprop)
ans = diple.
A.Prophandle.hprop = 7;

不允许尝试对值类对象属性进行分配:

a.propvalue.vprop = 11;
您无法设置ReadOnlyProps的只读属性“PropValue”。

相关话题