使用类的元数据,以获取有关类的信息和编程对象。例如,你可以决定属性值类成员或得到由类定义的事件列表。有关的元数据的基本信息,请参阅类的元数据。
该EmployeeData工作
类是处理
其中一个带有两个属性类,具有私有访问
和定义了一组访问方法。
classdefEmployeeData工作<手柄性能员工姓名结束性能(ACCESS =私人)EmployeeNumber结束方法功能OBJ = EmployeeData工作(姓名,SS)如果nargin> 0 obj.EmployeeName =名;obj.EmployeeNumber = SS;结束结束功能set.EmployeeName(OBJ,名)如果ischar(名称)obj.EmployeeName =名;其他错误(“员工姓名必须是一个char向量”)结束结束结束结束
使用EmployeeData工作
类,创建meta.class
对象使用?
运营商:
MC = EmployeeData工作?;
从哪些类确定EmployeeData工作
派生的。返回的值是一个meta.class
对象为处理
超类:
A = mc.SuperclassList;一个名字
ANS =手柄
该EmployeeData工作
类只有一个超类。对于有一个以上的直接超类,一个
包含meta.class
对象的每个超类。
使用索引引用来引用任何特定的超类:
一(1),请将.Name
或者,直接从MC
:
mc.SuperclassList(1)请将.Name
ANS =手柄
该SuperclassList
属性包含唯一的直接超类。
查找该定义的属性的名称EmployeeData工作
类。第一获取的阵列meta.properties
从对象meta.class
对propertyList
属性。
MC = EmployeeData工作?;mpArray = mc.PropertyList;
长度mpArray
表明有两个meta.property
对象,一个用于由定义的每个属性EmployeeData工作
类:
长度(mpArray)ANS = 2
现在得到meta.property
从阵列对象:
PROP1 = mpArray(1);prop1.Name
ANS = EmployeeName
该名称
财产meta.property
对象标识类属性表示由meta.property
目的。
查询其他meta.property
对象属性来确定的属性员工姓名
属性。
您可以使用索引技术,以具有特定属性值列表类组件。例如,该代码列出的方法EmployeeData工作
类有私人的
访问:
MC = EmployeeData工作?;mc.PropertyList(ismember({mc.PropertyList(:)。SetAccess},'私人的'))。名称
ANS = EmployeeNumber
访问
不是的属性meta.property
类。用SetAccess
和GetAccess的
,这是的性质meta.property
类。
找到了在使用像这样的一个说法逻辑值的属性的组件:
MC =手柄?;mc.MethodList(ismember([mc.MethodList(:)。隐藏],真))。名称
ANS =空
创建EmployeeData工作
对象,并确定访问属性设置:
EdObj = EmployeeData工作('我的名字',1234567);mcEdObj =元类(EdObj);mpArray = mcEdObj.PropertyList;EdObj。(mpArray(1)请将.Name)%动态字段名使用对象
的价值员工姓名
属性是文本我的名字
,这被分配在构造函数中。
ANS =我的名字
的价值员工编号
属性是不可访问,因为酒店有私人访问
。
EdObj。(mpArray(2)请将.Name)
你不能得到EmployeeData工作的“EmployeeNumber”属性。
mpArray(2).GetAccess
ANS =私有
获得功能处理
到员工姓名
属性集访问功能:
mpArray(1).SetMethod
ANS = @D:\ MYDIR \ @EmployeeData \ EmployeeData.m> EmployeeData.set.EmployeeName
该meta.class
EnumeratedValues
属性包含的阵列meta.EnumeratedValue
对象,每个枚举成员。使用meta.EnumeratedValue
名称
属性以获得由枚举类中定义的枚举成员名称。例如,给定的平日
枚举类:
classdef平日列举周一周二周三周四周五结束结束
从查询枚举名meta.class
目的:
?MC =工作日;mc.EnumerationMemberList(2)请将.Name
ANS =周二