6.0 Labview中的类面向对象编程-类的使用(OOP)

本文介绍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

labview中的类的使用方法(class)_Labview实战1-力位置曲线的绘制-CSDN在线视频培训

相关推荐
fanchenxinok21 小时前
基于图莫斯的CAN UDS诊断上位机-LabVIEW版本(十七):TOOMOSS_SID19_ReadDTCInformation.vi — 读取DTC信息
labview·dtc·sid19
神电测控1 天前
新品发布:32通道50MS/s同步并行14位采集模块PG-FMC9249(支持任意FPGA/ZYNQ,兼容LabVIEW FPGA软件开发)
fpga开发·labview·ni·神电测控·王电令·ad9249·32通道
电气_空空2 天前
基于 LABVIEW 的虚拟仪器温度检测系统的设计
labview
fanchenxinok2 天前
基于图莫斯的CAN UDS升级上位机-LabVIEW版本(十五):总结篇
labview·uds升级·uds刷写
fanchenxinok2 天前
基于图莫斯的CAN UDS升级上位机-LabVIEW版本(十六):从刷写到诊断的功能扩展
labview·诊断·uds
fanchenxinok3 天前
基于图莫斯的CAN UDS升级上位机-LabVIEW版本(十四):打包与安装应用程序
labview·安装·升级上位机·uds刷写
fanchenxinok4 天前
基于图莫斯的CAN UDS升级上位机-LabVIEW版本(十):TOOMOSS_SID31_RoutineControl.vi — 例程控制
can·labview·uds升级·升级上位机·uds刷写
kingwebo'sZone4 天前
我写的第一个labview 展示页面程序
labview
电气_空空4 天前
基于 LabVIEW的数据采集与信号处理系统的设计
嵌入式硬件·毕业设计·信号处理·labview
无垠的广袤5 天前
【RA-Eco-RA4M2开发板】步进电机的串口控制和 LabVIEW 数据采集
单片机·嵌入式硬件·labview