欢迎来到天天文库
浏览记录
ID:55762266
大小:26.50 KB
页数:5页
时间:2020-06-06
《面向对象的基本概念.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、面向对象的基本概念面向对象的三大特点:封装、继承和多态。一、类类表示通用的特性,类是一个事物抽象出来的结果。实际上,类就是一种用户定义的数据类型。假设有一个描述汽车的类其定义就是表示各种汽车通用特性。一般来说,一个类具有成员变量和成员方法两部分(其中成员变量在labview中称为“数据”,可以这么来理解:类的每个实例,即对象,具有状态,一个对象用数据值来描述它的状态。)。(1)成员变量相当于属性(属性指的是类中对象所具有的性质(数据值))。比如把人作为一个类的话,“人”具有的胳膊、手脚等就是成员变量。而把“汽车”作为一类的话,
2、车门和排挡上的数据就是汽车类的数据。(2)成员方法是该类能完成的一些功能,比如‘人’可以说话(talk),行走(walk)等。汽车的启动、刹车功能就是“汽车”的方法。二、对象对象,如果说类是一个抽象概念,那么对象就是具体对象,对象是类的特定实例。类与对象的关系就如类型和变量的关系,所有对类的操作都必须通过对象来实现。比如我们说‘人’就是一个抽象概念,但是具体到某个人,比如你,我,他,就是一个‘人’对象。某一辆特定的汽车就是“汽车”类的一个对象。三、封装封装,是指每个对象都包含了它所能操作的所需的所有信息,简单理解就是把一系列的
3、数据放在一个类中,对象是封装的最基本单位。还用前面的例子,如果形容一个人,我们可以用姓名(name)、身高(hight),体重(weight)等来描述,如果不封装,我们需要3个变量来形容它。在面向对象中,可以用一个Person类封装这些数据,Person具有3个成员变量,分别是name,height,weight。使用的时候,每当生成一个这样的类的对象,就具有这3个属性。Labview中的数据(常存放在控件.ctl中)只有私有封装形式,但成员VI(即方法)却可以有不同的封装形式,成员VI的访问设置权限如下:(1)公共(publ
4、ic):任何VI都可将该成员VI作为子VI来调用;(2)保护(protected):仅该成员VI所在的类及其子类中的VI可以调用;(1)私有(private):只能被本类中的其他VI调用。一、继承继承,如果B类继承A类,那么B类将具有A类的全部属性和方法,同时还可以扩展自己独有的方法和属性。还用人做例子。‘人’是父类,那么‘男人’,‘女人’都是继承自‘人’。也就是说,不论‘男人’,‘女人’,都具有‘身高’,‘体重’这两个属性,同时,他们可以有自己独有的属性,比如‘女人’可以有一个“有无耳洞”的属性。Labview的开发者为了让
5、用户更加明白继承的层次关系,采用以下术语:(1)父类(即基类/超类):供其他labview类继承的数据、公共型成员VI(即方法)/保护型成员VI的labview类;(2)子类(即派生类):从父类继承数据、公共型成员VI/保护型成员VI的labview类;(3)兄弟类:和一个labview类继承同一个父类的的另一个labview类;(4)祖先类:一个labview类的上一层(父类)、上两层(父类的父类)、上三层等。Labviewobject类是所有类的始祖;(2)子孙类:一个labview类的下一层(子类)、下二层(子类的是子类
6、)、下三层等。Labview有一个最终类,就是labviewobject类,通过labviewobject类创建的VI,能最多个labview类执行通用的操作。在labview中所有类的属性都是私有的,不能被外部的类和VI访问。外部程序如需访问类中的私有数据,必须首先创建该类的成员VI,在该成员VI上对私有数据进行操作。外部程序通过访问该成员VI,从而达到对类中私有数据操作的目的。这一点和C++是一致的。子类只继承一个父类的数据结构和方法,则称为单重继承;子类继承了多个父类的数据结构和方法,则称为多重继承。但是一般情况下,一个
7、子类只能有一个基类,要实现多重继承,可以通过多级继承来实现。二、多态多态,同一个方法以不同的形式实现,即同一个父类的不同子类,虽然都继承了父类的方法,但他们的实现形式不一样。比方说动物类有“发出声音”这个方法,但作为继承动物类的子类猫类和狗类,他们的发出声音是不一样的,这就是“多态”。具体来说,多态分为重载和重写。重载就是一个方法的方法名相同而所具有的参数列表或者参数类型不同。比如:publicStringtalk(Stringcontent);//参数是String,publicStringtalk(Stringconten
8、t,intnumber)//参数是2个,String和int重载的规则:1.必须具有不同的参数列表(体现在参数个数或参数类型或者参数次序不同);2.可以有不同的返回类型,只要参数列表不同就可以了;3.可以有不同的访问修饰符;4.可以抛出不同的异常;重载的作用:例如构造方法重载
此文档下载收益归作者所有