使用手柄
班findobj
方法来查找具有具有特定值的属性的对象通信录
对象表示数据库中的电话簿条目通信录
类的子类动态行动
类,它派生自手柄
.
classdef电话簿属性姓名地址号码终止方法函数obj=电话簿(n,a,p)obj.Name=n;obj.Address=a;obj.Number=p;终止终止终止
这里有三个通信录
数据库中的条目:
PB(1)=电话簿(“南希·维达尔”,“华盛顿街123号”,'5081234567');PB(2)=电话簿(“南希·维达尔”,“主街123号”,'5081234568');PB(3)=电话簿(“南希黄”,“南街123号”,'5081234569');
这三个中的一个通信录
对象具有动态特性:
PB(2).addprop(“高速互联网”);PB(2).高速互联网=1米的;
查找表示employee的对象南希
黄
并通过串接字符串显示名称和数字:
西北= findobj(铅、“姓名”,“南希黄”); [NW.Name,' - ',西北方向,电话号码]
ans=Nancy Wong-5081234569
使用以下命令搜索具有特定特性名称的对象:财产
选择:
H = findobj(铅、“-财产”,“高速互联网”);H.高速互联网
ans = 1米
这个财产
选项使您可以忽略特性的值,并仅使用特性名称搜索对象。
搜索特性名称和值的特定组合:
H = findobj(铅、“姓名”,“南希·维达尔”,“-和”,“地址”,“主街123号”);H.编号
ans=5081234568
所有元类都派生自手柄
类。您可以使用手柄
findobj
方法查找具有特定属性设置的类成员。
例如,通过搜索meta.class
方法列表
对于元方法
对象及其摘要
属性设置为真正的
:
使用字符格式的类名,因为类是抽象的。不能创建该类的对象:
mc=meta.class.fromName(“MyClass”);
搜索方法列表
名单元方法
对象,用于具有摘要
属性设置为真正的
:
absMethods=findobj(mc.MethodList,“摘要”,对);methodNames={absMethods.Name};
细胞阵列,方法名
,包含类中抽象方法的名称。
查找中所有属性的名称集装箱。地图
具有公共属性的类获取访问权限
:
得到meta.class
对象。
使用findobj
的数组元属性
物体。
使用大括号创建属性名称的单元格数组。
mc=?containers.Map;mpArray=findobj(mc.PropertyList,“GetAccess”,“公众”);名称= {mpArray.Name};
显示所有的名称集装箱。地图
具有公共属性的属性获取访问权限
:
celldisp(姓名)
名称{1}=计数名称{2}=键类型名称{3}=值类型
确定是否有集装箱。地图
类方法是静态的:
~isempty(findobj([mc.MethodList(:)]),“静态”(对)
ans=1
findobj
返回元方法
静态方法的对象。在这种情况下,静态方法列表不是空的。因此,存在由此类定义的静态方法。
的方法获取任何静态方法的名称元方法
数组:
staticMethodInfo=findobj([mc.MethodList(:)],“静态”,true);staticMethodInfo(:).Name
ans=空
静态方法(本例中只有一个)的名称是空的
.这是来自元方法
对象空的
方法:
静态方法信息
具有以下属性的方法:Name:'empty'Description:'返回给定大小的空对象数组'DetailedDescription:'Access:'public'静态:1抽象:0密封:0隐藏:1输入名称:{'varargin'}输出名称:{'E'}定义类:[1x1 meta.class]