属性获取和设置方法
您可以定义属性MATLAB的get和set方法®调用时自动访问相关联的属性。把获取或设置方法和一个给定的属性,使用形式的get和set方法名称得到的。
和PropertyName
集。
,分别。PropertyName
获取和设置方法可以执行额外的步骤不仅仅是访问属性。使用方法:
计算的值依赖属性。
以不同的格式存储数据比你呈现给用户。
使用设置方法:
设计属性验证这是更复杂的比内置的验证技术支持。金宝app
问题的自定义错误消息。
执行操作的属性值变化的直接结果,如与硬件设备建立或更新连接或打开文件,确保对资源的访问。
获取和设置方法添加开销你类。避免复杂的get和set方法和computation-heavy操作频繁访问的属性。
请注意
你不能叫这个话题直接描述的get和set方法。MATLAB访问属性值时自动调用这些方法。为实现user-callable信息获取和设置方法,明白了实现设置/获取接口的属性。
属性得到方法
您可以定义一个get方法,MATLAB自动调用相关的查询属性值。get方法必须返回属性值。Get方法使用这个语法,PropertyName
属性的名称。
方法函数值=。PropertyName(obj)…结束结束
块定义方法获取或设置方法不能指定属性。
例如,triangleArea
类定义了一个方法区域
财产。区域
被定义为一个相关的属性,这意味着它不存储值。get方法区域
按需计算的值。(依赖属性的更多信息,请参阅获取和设置方法依赖属性。)
classdeftriangleArea属性底= 1高= 1结束属性(依赖)区域结束方法函数一个= get.Area (obj) disp (“执行。方法。”)= 0.5 * obj.Base * obj.Height;结束结束结束
创建一个实例triangleArea
。
一个= triangleArea
一个=执行。面积的方法。triangleArea属性:基础:1高度:1面积:0.5000
当显示一个对象,MATLAB调用的任何属性的get方法定义它显示。在这种情况下,它调用get.Area
和计算的价值区域
基于的默认值基地
和高度
。如果一个get方法错误,MATLAB抑制错误和省略了属性的显示。
变化的值基地
和高度
和访问区域
一次。
一个。基地= 3;一个。身高= 4;a.Area
执行。面积的方法。ans = 6
Get方法的使用
不递归调用Get方法。
当复制一个值对象(即,不是来自于
处理
类),get方法并不时调用复制属性值从一个对象到另一个。
属性集的方法
您可以定义一组方法,MATLAB时自动调用相关的属性赋值。方法使用这些语法,这取决于类是一个值或处理类:
值类设置方法必须返回修改后的对象。
函数obj =设置方法。PropertyName(obj,值)……结束结束
处理类设置方法不需要返回修改后的对象。
函数集的方法。PropertyName(obj,值)……结束结束
块定义方法获取或设置方法不能指定属性。
例如,symPosDef
使用一组属性验证的方法。当inputMatrix
属性设置为一个新值,设置方法调用胆固醇
函数来确定输入矩阵是对称正定的。如果是,该方法集inputMatrix
这个值。如果不是,该方法返回一个自定义的错误消息。
classdefsymPosDef属性inputMatrix = [1 0;0 1]结束方法函数obj = set.inputMatrix (obj, val)试一试胆固醇(val) obj。inputMatrix= val;抓我的错误(“必须对称正定inputMatrix。”)结束结束结束结束
创建一个实例symPosDef
并尝试设置inputMatrix
的值不是一个对称正定矩阵。
s = symPosDef;年代。inputMatrix = [1 2;1 (1)
错误使用symPosDef /组。inputMatrixinputMatrixmust be symmetric positive definite.
设置方法的使用
设置方法不递归地调用。
MATLAB不分配默认值时调用设置方法在初始化一个对象的属性。然而,在构造函数中设置属性值并调用设置方法。
MATLAB调用set方法对象时加载。
当MATLAB拷贝一个值对象(不是任何对象
处理
),设置方法并不时调用复制属性值从一个对象到另一个地方。当一个属性的定义
AbortSet
属性等于真正的
设置方法时的财产分配的值是一样的当前值。然而,如果属性的get方法,方法被调用,这样可以比较的值。看到作业时,属性值是不变的有关这个属性的更多信息。