主要内容

用常量定义类属性

定义命名常量

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

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

给常量属性赋值

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

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

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

引用常量属性

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

类名称PropName

例如,使用NamedConst类,引用度到弧度转换的常数,R

x射线检验= 45 * NamedConst。R
x射线检验= 0.7854

常量在包

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

/ @AstroConstants / AstroConstants.m +常量

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

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

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

函数E = energyToOrbit(m,r) E =常数。astroconstants . g *常数。astroconstants . me * m *...(1 / constants.astroconstants.re - 0.5 * r);结束

将包导入到函数中就不需要重复包名(参见进口):

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

赋给句柄对象的常量属性

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

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

classdefConstMapClass <处理属性(常量)conmapprop =容器。地图结束结束

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

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

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

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

常量属性分配给任何对象

您可以将定义类的实例指派给常量属性。MATLAB在加载类时创建赋值给常量属性的实例。仅当定义的类是处理类。

MyProject是这样一个类的例子:

classdefMyProject <处理属性(常量)ProjectInfo = MyProject结束属性部门ProjectNumber日期结束方法(访问=私人)函数obj = MyProject日期= 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
ans =工程

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

p.Department =“质量保证”;

p的实例的句柄MyProject分配给ProjectInfo不变的属性:

MyProject.ProjectInfo.Department
ans =质量保证

的新实例的赋值MyProjectProjectInfo财产。

清晰的MyProjectMyProject.ProjectInfo.Department
ans =工程

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

常量属性-不支持Get事件万博1manbetx

常量属性不支持属性万博1manbetxPreGetPostGet事件。在类初始化期间,如果设置GetObservable属性的常数财产真正的

相关的例子

更多关于