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

类的访问权限

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

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

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

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

类的实例化

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

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

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

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

是否需要被子类覆盖

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

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

斯金

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值