LabVIEW比较LabVIEW类对象 LabVIEW接口

news/2024/7/7 20:39:24

LabVIEW比较LabVIEW类对象  LabVIEW接口

使用比较功能比较LabVIEW类对象。

如比较同一个类的两个对象,例如,卡车类的两个对象,LabVIEW将比较类层次结构中所有层次的数据,类似于LabVIEW比较由簇组成的簇。

如比较不同类的两个对象,例如,比较一个卡车类对象和一个潜水艇类对象,LabVIEW比较对象所有的共有祖先类数据。在该情况下,LabVIEW仅比较汽车类共有祖先类的数据。

比较两个不同类的对象时,如共有祖先类的所有数据都相同,LabVIEW基于下列标准对对象进行排序。

LabVIEW将父类排在子类之前。例如,如比较一个汽车类的对象和一个陆上车类的对象,LabVIEW将把汽车类对象放在前面,因为它是父类的一个对象。

LabVIEW将第一个相异的类按类名称的字母顺序排列。例如,如比较一个卡车类对象和一个潜水艇类对象,LabVIEW先比较作为公共祖先类的汽车类对象。如汽车类对象的数据相同,LabVIEW将把卡车类对象排在前面,因为第一个相异的类:陆上车(Land Vehicle)和水上车(Water Vehicle),按其名称首字母排序,陆上车在水上车之前。

LabVIEW接口

在LabVIEW中,接口可以被视作是不带有私有数据控件的类,但这种微小的差异使得接口在软件架构中可以实现与类完全不同的目的。具体而言即接口可支持多重继承形式。

接口声明了对象可以扮演的角色,而无需定义如何执行该角色。通过继承接口,类声明其对象实现该角色,然后该类负责指定行为的执行方式。当一个类继承了多个接口时,其对象可被传输至需要完成不同角色的多个软件模块中。

以下项目包括工具(Tool)类,以及几个不同工具的子类。该项目还包括杠杆(Lever)接口。可以看到Tool类有一个控件,该控件定义了该类中的数据,而Lever接口则没有控件,因为接口没有私有数据。用实心立方体表示一个类()。用立方体的面表示一个接口()。接口和类使用相同的文件扩展名 .lvclass。

下图显示了Tool类,House Key类和Lever接口之间的继承关系。Tool类和Lever接口均继承自LabVIEW对象。除了拥有自己的方法以及它们各自的父类的方法之外,撬具类(Prying Tool)和平头螺丝刀类(Flathead)还继承自杠杆接口(Lever),因为它们都使用了杠杆原理。继承了杠杆接口(Lever)的方法。由于杠杆(Lever)是接口而不是类,因此这种多重继承是合法的。除LabVIEW对象外,三个不相关的类(撬具、平头螺丝刀、房间钥匙)具有一个共同的祖先——杠杆。

命名接口的惯例

请使用下列规范为接口命名。接口的名称应具有一定的描述性。

使用形容词或副词描述对象在继承接口时具有的功能。例如,如果接口表示可测量电压的硬件,则将其命名为Can Measure Voltage.lvclass。继承该接口的任何类或接口都可以测量电压。

使用一个名词来描述从接口继承的类的类别。例如,如果接口代表杠杆工具类别,则将其命名为Lever.lvclass。

接口名称避免使用大写字母"I”开头。大多数文本编程语言通常使用前导大写字母"I”来命名接口,以区分接口与类。LabVIEW使用图形化的符号来区分接口与类。此外,LabVIEW开发环境的大多数部分有意地以相同的方式处理接口与类。方法的调用方通常不在乎底层类型是接口还是类。因此,接口名称中不使用"I”,可以将类转换为接口,将接口转换为类,而无需重构代码。

关于使用接口的范例,请参考下列项目:

labview\examples\Object-Oriented Programming\BasicInterfaces\Basic Interfaces.lvproj

labview\examples\Object-Oriented Programming\Actors andInterfaces\Actors and Interfaces.lvproj

需要说明的是,上述的例程和文档,都是可以下载的,双击即可打开,其中压缩文件是可以采用粘贴复制的方式,拷贝到硬盘上。这不是图片,各位小伙伴看到后尝试一下,这个问题就不用加微信咨询了。有关LabVIEW编程、LabVIEW开发等相关项目,可联系们。


http://www.niftyadmin.cn/n/13597.html

相关文章

力扣hot100——第5天:22括号生成、23合并K个升序链表、31下一个排列

文章目录1.22括号生成1.1.题目1.2.题解2.23合并K个升序链表2.1.题目2.2.解答3.31下一个排列3.1.题目3.2.解答1.22括号生成 参考:力扣题目链接;题解1,题解2 1.1.题目 1.2.题解 这道题目是使用递归的方法来求解,因为要求解所有的…

洛谷千题详解 | P1019 [NOIP2000 提高组] 单词接龙【C++、Java语言】

博主主页:Yu仙笙 专栏地址:洛谷千题详解 目录 题目描述 输入格式 输出格式 输入输出样例 解析: C源码: Java源码: -----------------------------------------------------------------------------------------------…

Linux基本工具——yum

Linux基本工具软件包管理器yum什么是软件包Linux的软件包yum的三板斧yum的扩展软件包管理器yum 工具的本质就是指令 什么是软件包 我们平时用手机与电脑的时候,如果想安装一个软件就需要去下载它的安装包(软件包),下载安装包的…

极客时间 - Vim学习

文章目录Vim script打印输出和字符串变量数字复杂数据结构表达式控制结构函数和匿名函数重要命令事件内置函数四种模式正常(normal)模式插入(insert)模式可视(visual)模式:v/V命令行&#xff08…

什么是云计算?什么是边缘计算?为什么需要云边协同?

一、云计算的发展有哪些弊端? **云计算(cloud computing)**是分布式计算的一种,指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后,通过多部服务器组成的系统进行处理和分析这些小程序…

【PTA-训练day14】L2-026 小字辈 + L1-054 福到了

L2-026 小字辈 - dfs建树 求最大深度 PTA | 程序设计类实验辅助教学平台 思路: 用vector存关系 v[父辈下标]{孩子1下标,孩子2下标……}dfs建树 从树根开始建dfs逐层向下 深搜每一个节点如果是叶子节点 则用res存 res[深度]{叶节点下标} 并及时更新最…

[附源码]计算机毕业设计智能衣橱APPSpringboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

【JavaEE】初识操作系统,吃透进程

✨哈喽,进来的小伙伴们,你们好耶! 🛰️🛰️系列专栏:【JavaEE】 ✈️✈️本篇内容:初始操作系统,进程的概念 🚀🚀代码存放仓库gitee:JavaEE初阶代码存放! ⛵⛵…