LVOOP(二)、面向对象概念演示

  1. 《面向对象概念演示》的设计过程
  2. 功能

    该程序实现的基本功能:

  • 有猫和狗两种动物;
  • 可以对他们体检,对于猫,大于7岁为old,否则为young;对于狗大于2岁为old,否则为young
  • 会发出叫声,显示对应的图片;
  1. 继承关系

  2. 实现过程
  • 创建项目,并命名为"Animal-1.lvproj":

  • 右键单击"我的电脑",新建-类,新建一个类,并命名为"Animal-1.lvclass":

  • 双击"Animal-1.ctl",打开并编辑Animal-1类的私有数据:

  • 创建方法make sound.vi:创建类的方法时有2个选择,分别是"基于动态分配模板的VI"和"基于静态模板的VI"。基于动态分配模板的VI:在被继承时,可以改写同名VI,实现不同的行为,可以实现类的多态;基于静态模板的VI:只能被继承,不能被改写。

    所有的动物都会发声,但是每种动物发出的声音不一样,所以在父类中定义一个虚函数"make sound.vi",选择"基于动态分配模板的VI",子类可以改写该方法,实现多态,其程序框图如下图所示:

  • 创建方法,set property.vi:需要设置父类中的私有数据(age和类别),该方法不允许子类修改,所以采用"基于静态模板的VI",其程序框图如下图所示:

并将"age"和"类别"连到前面板的接线端口;

  • 创建方法,body test.vi:该方法的功能是获取私有数据的值,并根据年龄判断结果是old还是young,采用"基于静态模板的VI"。"猫"分子如下图所示:

"狗"分支如下图所示:

并将age、类别、结果连到接线端。

  • 在新建CatDog类前,先建立2个文件夹"Cat-1"和"Dog-1"用于保存这2个类中的数据和方法;
  • 新建猫类:新建一个类,命名为"Cat-1.lvclass";右键选择属性-继承-更改继承,选择"Animal-1"为其父类,"继承所选类":

该类中的数据全部继承于Animal-1类,没有私有数据;

新建Cat-1类的方法:make sound.vi,采用"基于静态模板的VI",用于模拟Cat发声:

新建Cat-1类的方法:set property-1.vi,采用"基于静态模板的VI",用于设置Cat-1类的属性。在程序框图中选择编程-簇、类和变体-调用父方法(只能这样调用父方法,否则不行。)程序框图如下:

修改后的前面板如下图所示:

  • 用同样的方法创建狗类。其程序框图如下:

其前面板如下:

  • 新建vi"Animal Test-1.vi"用于演示程序,前面板如下图所示:

程序框图如下图所示:

该程序采用生产者-消费者循环,生产者循环随机设置猫或者狗的属性,消费者循中的"body test.vi"调用父类中的方法;"make sound.vi"实现了多态,根据不同的对象,调用不同的方法。


源程序见这个链接:http://download.csdn.net/detail/lab_fans/9872285#

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值