Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

属性语法

属性定义代码块

下图显示一个典型的属性设定。propertiesend 关键字描述代码块,该代码块定义具有相同特性设置的属性。

注意

属性不能与类具有相同的名称。

有关示例,请参阅创建简单类

赋予默认值

前面的示例说明指定为具有默认值 [0 0 1]Coefficients 属性。

您可以使用 MATLAB® 表达式初始化属性值。但是,除了调用类静态方法之外,这些表达式无法以任何方式引用您定义的类。MATLAB 仅在初始化类时执行创建初始属性值的表达式,这发生在首次使用类之前。有关 MATLAB 如何计算默认值表达式的详细信息,请参阅 属性默认值

每行定义一个属性

属性名称必须在单独的行中列出。MATLAB 将属性名称后面的名称解释为类名称。

限制属性值

您可以通过将类与属性定义中的属性相关联来限制属性值。例如,MyData 的定义要求赋给此属性的值必须具有类型 int32 或与 int32 兼容的类型。

properties
   MyData int32
end

有关详细信息,请参阅验证属性值

访问属性值

属性访问语法类似于 MATLAB 结构体字段语法。例如,如果 obj 是类的对象,则可以通过引用属性名称来获取属性值:

val = obj.PropertyName

通过将属性引用放在等号的左侧,为属性赋值:

obj.PropertyName = val

当您访问属性时,MATLAB 会执行任何属性 set 或 get 访问方法,并触发任何启用的属性事件。

属性的继承

当从一个类派生另一个类时,派生的类(子类)会继承超类的所有属性。一般情况下,子类只定义该特定类所独有的属性。超类定义由多个子类使用的属性。

指定属性特性

properties 关键字指定的特性应用于该代码块中后面的所有属性定义。如果只想将特性设置应用于某些属性,请重用 properties 关键字并为这些属性创建另一个属性代码块。

例如,以下代码显示 IndependentVarOrder 属性的 SetAccess 特性设置为 private,但 Coefficients 属性未采用此设置:

有关特定类的属性的信息,请使用 properties 函数。

相关主题