本文介绍labview中类以及子类的使用,即OOP(Object Oriented Programming )面向对象的编程方法。
OOP的核心概念如下:
核心概念 | 在 LabVIEW 中的体现 |
---|---|
类 (Class) | 包含私有数据 (属性)和方法(VI。例如,可以创建"Animal"类,私有数据(Name,Age). 方法包括: 1.静态方法(子类不能修改的,只能使用): 2.动态方法(子类可以继承并修改) 3.用于数据成员访问的vi(子类也可以使用) |
对象 (Object) | 类的实例。通过调用类的一些函数(比如本例子中的自己写的Init方法,其中把私有数据赋值) |
封装 (Encapsulation) | 将数据和操作数据的方法捆绑在一起,并通过访问控制 (公开、私有、受保护)隐藏内部实现细节-8。。 |
继承 (Inheritance) | 支持单继承 ,子类可以继承父类的数据和方法,并可以重写 (Override) 父类方法,例如,例Aniamial叫是"bark", Cat叫"喵喵" |
多态 (Polymorphism) | 不同类的对象可以对同一方法调用做出不同的响应,实现动态绑定,主要通过重写父类的方法实现 |
Labview中类(class)包含私有数据 (属性)和方法(VI),方法分三种:
a).基于动态模板分配的VI:这种vi在被继承时可以改写,实现不同的内容。即使用动态模板的vi,可以实现类的多态特性(即子类可以可以改写父类的方法),相当于C#中的virtual,可以被子类重写。
b). 基于静态模板的Vi,这种vi只能继承,不能改写。即子vi可以直接使用。不能改写内容。

c).用于数据成员访问的Vi,可以用于自己访问自己的私有数据;或者子类也可以调用父类的用于数据成员访问的vi,获得或者修改父类的私有数据
【例1】
本例使用Animal类生成2个对象,然后使用Cat类继承了Animal类且更改(C#中重载)了Animal的bark类。

本例步骤:
1.新建一个类,名称为Animal:

2.新建Animal的基于静态分配模板的VI,主要是Init.vi, AgeAdd1, ToString.
基于动态模板的vi,主要是bark。

3.在Cat中重载bark,实现猫的叫声

4.为了方便调用,统一管理,可以新建一个多态vi,然后把Animal的这些方法都添加进去。

5.在其他vi中调用

【备注】本文内容详见博主的录制的视频课程:https://edu.csdn.net/learn/40757/678509?spm=3001.4143