用类表示硬件
客观的
这个例子实现了一个表示光多路复用卡的类。这些卡通常有几个输入端口和一个输出端口。的MuxCard
类通过端口名称和端口数据速率表示端口。多路复用卡的输出速率是输入端口数据速率的和。
为什么从int32派生
的MuxCard
类派生自int32
类,因为32位整数表示输入端口数据速率。的MuxCard
类的方法继承int32
类,它简化了这个子类的实现。例如,数值数组索引和算术运算MuxCard
对象的这些操作继承自int32
类。
实现
下面是定义MuxCard
类。注意,输入端口速率初始化int32
类的一部分。
classdefMuxCard < int32属性InPutNames OutPutName结束属性(依赖= true)输出结束方法函数obj = MuxCard(inptnames, inptrates, outpname) obj = obj@int32(inptrates);obj。InPutNames = inptnames;obj。OutPutName = outpname;结束函数x = get.OutPutRate(obj) x = sum(obj);结束函数X = subsref(card, s)如果比较字符串(s (1) .type,“。”) base = subsref@int32(card, s(1));如果Isscalar (s) x = base;其他的X = subsref(base, s(2:end));结束其他的X = subsref(int32(card), s);结束结束结束结束
构造MuxCard对象
构造函数接受三个参数:
inptnames
-输入端口名称的单元格数组inptrates
—输入端口速率向量outpname
—输出端口名称
omx = MuxCard({“inp1”,“inp2”,“inp3”,“inp4”},[3 12 12 48],“outp”)
omx = 1x4带有属性的MuxCard数组:InPutNames: {'inp1' 'inp2' 'inp3' 'inp4'} OutPutName: 'outp' OutPutRate: 75 int32 data: 3 12 12 48
调用int32的方法
使用一个MuxCard
对象的数组int32
值。例如,这个索引语句访问对象中的数据,以确定速率为的输入端口的名称12
:
omx.InPutNames (omx = = 12)
Ans = 'inp2' 'inp3'
索引语句生成一个逻辑数组索引:
Omx == 12
Ans = 0 1 10 0
索引的MuxCard
对象访问int32
输入端口速率向量:
omx (1:2)
Ans = 3 12
的OutPutRate
属性获取访问方法的使用总和
输出端口速率之和:
omx。OutPutRate
Ans = 75