主要内容

用常量定义类属性

定义命名常量

您可以通过创建MATLAB定义可以通过名称引用的常量®定义常量属性的类。

使用常量属性定义可以按名称访问的常量值。类创建具有常量属性的类常数属性。设置常数属性意味着,一旦初始化为属性块中指定的值,该值就不能更改。

为常量属性赋值

给a赋任意值常数属性,包括MATLAB表达式。例如:

classdefNamedConst属性(常量)R = pi/180 D = 1/NamedConst。R AccCode =“0145968740001110202 npq”RN = rand(5)结束结束

MATLAB在加载类时计算表达式。因此,MATLAB赋值给RN结果是一个单一的调用兰德函数的后续引用不更改NamedConst。RN.调用清晰的导致MATLAB重新加载类并重新初始化常量属性。

引用常量属性

使用类名和属性名引用常量:

类名称PropName

例如,使用NamedConst在前一节中定义的类,引用角度到弧度转换的常量,R

radi = 45*NamedConst。R
Radi = 0.7854

包装中的常量

要为可以按名称访问的常量值创建一个库,首先创建一个包文件夹,然后定义各种类来组织常量。例如,要实现一组用于进行天文计算的常量,定义aAstroConstants常量

/ @AstroConstants / AstroConstants.m +常量

类定义了一组常数赋值的属性:

classdefAstroConstants属性(常数)C = 2.99792458e8% m / sG = 6.67259% m /公斤Me = 5.976e24%地球质量(kg)Re = 6.378e6%地球半径(m)结束结束

要使用这组常量,请使用完全限定类名引用它们。例如,下面的函数使用定义在AstroContants

函数E =能量到轨道(m,r) E =常数。天文常数。g *常数。天文常数。me * m *...(1 / constants.astroconstants.re - 0.5 * r);结束

将包导入到函数中可以避免重复包名(请参阅进口):

函数E = energyToOrbit(m,r) import常数。*;E =天文常数。G * AstroConstants。我* m *...(1 / AstroConstants。Re - 0.5 * r);结束

赋值句柄对象的常量属性

如果类定义的常量属性的值是句柄对象,则可以为句柄对象属性赋值。要访问句柄对象,请创建一个局部变量。

例如,ConstMapClass类定义了一个常量属性。常量属性的值是句柄对象(a容器。地图对象)。

classdefConstMapClass < handle属性(常量)ConstMapProp =容器。地图结束结束

属性的当前日期日期键,返回常量属性的句柄,然后使用赋值语句左侧的局部变量进行赋值:

localMap = ConstMapClass。ConstMapProp localMap (“日期”) = datestr(时钟);

不能在赋值语句的左侧使用对常量属性的引用。例如,MATLAB将下面的语句解释为创建结构体命名ConstMapClass有一个领域ConstMapProp

ConstMapClass.ConstMapProp('Date') = datestr(时钟);

常量属性赋给任何对象

可以将定义类的实例分配给常量属性。MATLAB在加载类时创建分配给常量属性的实例。仅当定义类为处理类。

MyProject是此类的一个示例:

classdefMyProject < handle属性(常量)ProjectInfo = MyProject结束属性项目编号结束方法(Access = private)函数obj = MyProject obj。日期= datestr(clock); obj.Department =“工程”;obj。ProjectNumber =“P29.367”结束结束结束

方法引用属性数据常数属性:

MyProject.ProjectInfo.Date
ans = 18 apr -2002 09:56:59

因为MyProject是句柄类,您可以获取分配给常量属性的实例的句柄:

p = MyProject.ProjectInfo;

中的数据MyProject使用此句柄初始化:

p.Department
工程学

类的非常量属性MyProject使用此句柄初始化:

p.Department =“质量保证”

p的实例的句柄MyProject它被赋值给ProjectInfo不变的属性:

MyProject.ProjectInfo.Department
品质保证

的新实例的赋值MyProjectProjectInfo财产。

清晰的MyProjectMyProject.ProjectInfo.Department
工程学

只有当属性声明为时,才可以将定义类的实例赋值为属性的默认值常数

常量属性-不支持Get事件金宝app

常量属性不支持属性金宝appPreGetPostGet事件。属性时,MATLAB会在类初始化期间发出警告GetObservable属性常数财产真正的

相关的例子

更多关于