用常量定义类属性
定义命名常量
您可以通过创建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
品质保证
的新实例的赋值MyProject
到ProjectInfo
财产。
清晰的MyProjectMyProject.ProjectInfo.Department
工程学
只有当属性声明为时,才可以将定义类的实例赋值为属性的默认值常数
常量属性-不支持Get事件金宝app
常量属性不支持属性金宝appPreGet
或PostGet
事件。属性时,MATLAB会在类初始化期间发出警告GetObservable
属性常数
财产真正的
.