• LabVIEW面向对象-类的访问权限/实例化/覆盖


    类的访问权限

    公有:类内与类外均可访问,类内访问指在同一个类的方法(函数或VI)的代码中可以进行读写,否则就是类外访问。
    私有:类内可以访问,类外不可访问。
    保护:可以在类内或子类内访问。
    友元:指某个类的属性或方法可以被其他一些指定为友元的方法或类访问到。

    LabVIEW里类的属性(数据)只能是私有的,类的方法可以是公有的私有的保护的友元的。

    在这里插入图片描述
    底层的方法尽量设置为私有的,不能够让用户直接使用。

    LabVIEW中类是不能嵌套的,但是库可以嵌套。可以在大型项目中划分多个库,库中创建多个类。此时类作为库中的一个成员,也可以设置它是私有或公有。

    类的实例化

    **类中的属性与方法按照是否必须进行实例化才能调用可以分为静态(静态的属性和方法不需要类实例化就可以被访问)动态(动态的属性和方法只能通过类的某个实例进行访问)**和基于动态分配的模板、基于静态分配的模板完全不同的概念。

    LabVIEW类的属性与方法多数是动态的。要添加一个静态方法,在类里添加一个没有类输入控件的那种VI就可以了(相当于利用类的封装特性,把相关VI封装在同一个类里)

    一个静态方法
    在这里插入图片描述
    初始化VI很适合封装到类里,没有类的输入但是可以产生类的实例并对其进行初始化。可以在这个VI里设置一下对象初始资源以及打开所需的文件、仪器等。

    一个初始化VI
    在这里插入图片描述
    在这里插入图片描述

    是否需要被子类覆盖

    普通函数:LabVIEW中没有对应VI类型的一个东西。别的语言里,普通函数和虚函数都可以被子类继承和覆盖,区别在于普通函数不具备多态(动态绑定)的功能。
    虚函数:LabVIEW中的基于动态分配目标VI,表示这个函数或VI是可以被子类继承和重写的,而且有多态功能。
    最终函数:LabVIEW中的基于静态分配目标VI,表示这个VI不能被子类中的VI重写,不允许被子类中的函数覆盖。
    抽象(纯虚)函数:LabVIEW中设置为必须在子孙类中重写的VI。是一种虚函数(基于动态分配模板的VI),基类只定义了函数的名字和输入输出参数类型 ,并没有编写代码。

    在这里插入图片描述
    抽象类:不能内实例化的类,只能用于被子类继承(把瓷器类设置为一个 抽象类,会强制只能从茶杯类或茶壶类创建瓷器对象,不会创建出一个不存在的类型的瓷器)
    最终类:不能被继承的类。最终函数和最终类的使用一般是出于安全考虑(像是做了个用于验证密码的类,为了防止有人把密码验证逻辑在子类中重写之后传给调用者,可以把验证密码类设置为最终类,防止它被继承后在子类里被重写)

  • 相关阅读:
    51单片机实现换能器超声波测水深
    探秘Nutch:揭秘开源搜索引擎的工作原理与无限应用可能(二)
    4核8G服务器选阿里云还是腾讯云?价格性能对比
    深入探究数据结构与算法:构建强大编程基础
    git上传项目的基本步骤与一些问题
    2023年10月中国数据库排行榜:墨天轮榜单前五开新局,金仓、亚信热度攀升
    Hadoop-2.7.3完全分布式集群搭建(Centos7系统)
    MATLAB科学计算从入门到精通
    SpringBoot 3.x 结合 Swagger3 (Knife4j )踩坑实录
    NetCore.CAP mqttws31.js RabbitMq 订阅发布消息
  • 原文地址:https://blog.csdn.net/weixin_43781045/article/details/127578668