主要内容

属性访问方法

属性提供对类数据的访问

在MATLAB®,属性可以有公共访问。因此,属性可以提供对数据的访问类设计暴露给用户。

使用属性访问方法提供错误检查或实现属性访问带来的副作用。访问方法的例子包括函数时更新其他属性值设置属性或属性值的格式翻译之前返回的值。

为特定的信息访问方法的语法,请参阅属性得到方法属性集的方法

您可以使用属性验证限制大小,类,和其他方面的属性值。信息产权验证,看看验证属性值

访问方法的性能考虑因素

属性访问方法添加一个函数调用的开销每当访问属性值。如果性能关键型发生在类的方法访问属性,定义私有属性来存储值。使用这些值在没有任何错误检查方法。那么频繁访问外部的类,定义公共依赖属性,使用访问方法进行错误检查。

信息访问方法依赖属性,看到设置和获取方法依赖属性

属性设置和获取方法

属性访问方法时执行特定代码查询属性值或指定一个值。这些方法使您能够执行各种操作:

  • 执行代码分配属性值之前进行如下操作:

    • 实施价值范围的限制(验证属性值)

    • 检查适当的类型和尺寸

    • 提供错误处理

  • 执行代码之前返回属性的当前值进行如下操作:

控制代码可以访问属性,看到的东西属性的属性

MATLAB电话访问方法

属性访问方法执行自动当你设置或查询相应的属性值从外部访问方法。MATLAB不递归地调用访问方法。MATLAB,并不时调用的一组方法从内部设置属性,属性的设置方法,不管什么类的实例被修改。同样,MATLAB并不时调用get方法查询的属性值从内部属性的get方法。

请注意

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

获得该函数处理的设置和获取属性访问方法meta.property对象。的meta.propertySetMethodGetMethod属性包含引用这些函数处理方法。

限制访问方法

只定义了属性访问方法:

  • 具体属性(属性不是抽象)

  • 在类定义了属性(除非房地产是抽象类,在这种情况下,必须定义具体的子类的访问方法)。

MATLAB没有默认设置或获取属性访问方法。因此,如果您没有定义属性访问方法,用MATLAB软件不调用任何方法之前分配或返回属性值。

一旦定义,只有设置和获取方法可以设置和查询实际的属性值。看到当设置方法被调用信息情况下,MATLAB不调用属性集方法。

请注意

属性集和获取方法并不等同于user-callable得到方法用于设置和查询类的实例的属性值。看到实现设置/获取接口的属性信息user-callable得到方法。

访问方法不能调用函数来访问属性

你可以设置和获取属性值只在你的属性设置或获取方法。你不能调用另一个函数的设置或获取方法并尝试访问这个函数的属性值。

例如,一个匿名函数,调用另一个函数来做实际的工作不能访问属性值。同样,一个访问函数不能调用另一个函数来访问属性值。

定义访问方法

访问方法有特殊的名称,包括属性名。因此,得到的。PropertyName执行的时候PropertyName引用和集。PropertyName执行的时候PropertyName分配一个值。

在方法中定义属性访问方法块指定任何属性。你不能直接调用这些方法。MATLAB调用这些方法当任何代码访问属性。

属性访问方法没有出现在类方法返回的列表方法命令和不包括在内meta.class对象方法财产。

访问方法函数处理

房地产meta.property对象包含函数处理属性设置和获取方法。SetMethod包含一个函数处理的方法。GetMethod包含一个函数处理get方法。

获得这些句柄的meta.property对象:

mc = ?类名称;议员= findobj (mc.PropertyList,“名字”,PropertyName);跳频= mp.GetMethod;

例如,如果类MyClass定义的get方法文本属性,您可以获得一个函数处理的这个函数meta.class对象:

mc = ? MyClass;议员= findobj (mc.PropertyList,“名字”,“文本”);跳频= mp.GetMethod;

返回的值,跳频,包含一个函数处理get方法定义为指定的属性指定的类的名称。

定义函数处理的信息,请参阅创建函数处理

设置和获取方法执行和财产的事件

MATLAB软件生成事件前后设置和获取操作。您可以使用这些事件来通知侦听器,属性值是引用或分配。事件产生的时间如下:

  • PreGet——触发之前调用get方法

  • PostGet——触发属性获取方法后返回其值

如果一个类计算属性值(依赖= true),然后设置事件的行为就像get事件:

  • 预设——调用属性集方法之前触发

  • PostSet——调用属性集方法后触发

如果一个属性不计算(依赖= false,默认的),然后设置方法生成的赋值语句事件:

  • 预设——触发之前分配组内的新属性值的方法

  • PostSet——触发后分配组内的新属性值的方法

使用属性事件信息,请参阅创建属性的听众

包含数组访问方法和属性

您可以使用数组索引属性包含数组没有干扰属性设置和获取方法。

索引引用:

val = obj。PropName(n);

MATLAB调用get方法参考价值。

对索引的任务:

obj。PropName(n)= val;

MATLAB:

  • 调用get方法来获取属性值

  • 执行索引任务返回的属性

  • 通过新的属性值的设置方法

访问方法和对象的数组

当引用或赋值发生在一个对象数组,MATLAB调用在一个循环中设置和获取方法。在这个循环,MATLAB总是通过标量对象设置和获取方法。

修改属性值和访问方法

属性访问方法是有用的在这种情况下,您想要执行一些额外的步骤之前分配或返回属性值。例如,测试点类使用一个属性集的方法来检查一个值的范围。然后应用扩展如果是在一个特定的范围内,并设置它如果它不是。

房地产get方法应用比例因子之前返回当前值:

classdef测试点属性expectedResult = []结束属性(恒)scalingFactor = 0.001结束方法函数obj = set.expectedResult (obj,艾琳)如果艾琳> = 0 & &艾琳< = 100艾琳=艾琳。* obj.scalingFactor;obj。expectedResult =艾琳;其他的obj。expectedResult =南;结束结束函数呃= get.expectedResult (obj)呃= obj.expectedResult / obj.scalingFactor;结束结束结束

相关的话题