封装、继承和多态d

封装、继承和多态d

ID:39164960

大小:554.42 KB

页数:18页

时间:2019-06-26

封装、继承和多态d_第1页
封装、继承和多态d_第2页
封装、继承和多态d_第3页
封装、继承和多态d_第4页
封装、继承和多态d_第5页
资源描述:

《封装、继承和多态d》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、面向对象三大特征(封装、继承、多态)详解封装封装是面向对象的特征之一,是对象和类概念的主要特性。封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。比如人这个客观事物可以采用如下方式封装:人{姓名(特征)年龄(特征)性别(特征)做事(行为)走路(行为)说话(行为)}上面是对客观事物人的具体描述,用类封装后转化为:classPerson{stringname;//数据:姓名intage;//数据:年龄boolsex;//数据:性别voidDo(){}//方法:做事情voidWalk(){}//方法:走路voidS

2、ay(){}//方法:说话}采用类来描述客观事物的过程就是一种封装,类可以看成一种封装手段,其实是对客观事物的一种抽象。类成员采用访问级别来控制让可信的其他类进行操作,对不可信的进行信息隐藏。加上访问级别修饰符(标为蓝色),关于人的描述又进一步可以抽象为://公开的类,允许任何其他类进行访问publicclassPerson{//以下为私有成员变量,仅允许在该类内部访问privatestringname;//数据:姓名privateintage;//数据:年龄privateboolsex;//数据:性别//公有方法,允许任何类访问publicvoidDo(){}//方法:做事

3、//受保护的方法,仅允许派生类访问protectedvoidWalk(){}//方法:走路//内部方法,仅允许在同一个程序集(项目)内访问internalvoidSay(){}//方法:说话}采用UML图形描述为:通过该图形可以看出我们将一个自然界中真实的事物:人进行了封装,将人(包括特征和行为)抽象成了开发语言当中的类。因此,类的产生本身就是封装的体现。于是,封装构成了面向对象的第一大特征。继承面向对象编程(OOP)语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。通过继承创建的新类称为

4、“子类”或“派生类”。被继承的类称为“基类”、“父类”或“超类”。继承的过程,就是从一般到特殊(具体)的过程。关于继承的关系,可以这样描述:子类isa父类或者严格来说子类isakindof父类(子类是父类的一种)。如:狗是动物的一种(狗是动物),学生是人的一种(学生是人)。具备继承关系的多个类构成了一种继承体系或者称为继承层次。采用UML图形建模方式来展示这种层次关系,会更加直观。(这里的父类为人(Person),共派生了两个子类:学生(Student)和教师(Teacher)。并且学生类额外增加了一个学习(Learn)方法,教师类额外增加了一个教学(Teach)方法。)

5、借此图,我们再进一步阐述继承关系。上图说明,Person是基类,而Student和Teacher都派生自Person。于是我们说Student是Person的一种,Teacher是Person的一种,并且Student和Teacher将继承Person的所有的功能和属性(这里指访问级别为公开的和受保护的或者内部的)。关于对象和对象的关系中,还有一种包含关系,如下面图示:(注:上面的图示不属于UML建模图形)通过上图可以看出Head这个类是由下面的Eye、Nose、Mouth、Ear组合而成的。这时候我们可以说,EyeisapartofHead或者NoseisapartofHe

6、ad等等。也就是说,眼、鼻、嘴、耳都是头的一部分。在UML中,又把包含关系细分为两种,分别称为组合和聚合。组合:上面的UML图形采用的是实心菱形加实线箭头表示,意思是:Car(汽车)是由Wheel(轮胎)组成,WheelisapartofCar。除了具备包含关系,组合的特点还有:Wheel(轮胎)是不能离开Car(汽车)而单独存在的。当然这也需要视问题领域,如果是汽车制造厂,我们说,轮胎是一定要组合到汽车里面去的,因为它离开汽车就没有意义了。但是,如果是在卖轮胎的店铺里,就算轮胎离开了汽车,它也是有意义的,这里就可以采用聚合了。聚合:上面的UML图形采用的是空心菱形加实线箭头

7、表示,意思是Car聚合Wheel,同样Wheel(轮胎)是Car(汽车)的一部分,但是这里的Wheel可以脱离Car而独立存在。因此,关于类的包含关系,到底是使用聚合还是组合,需要看具体的问题领域,从而设计最合适的关系模型。思考下面的问题,看是采用聚合还是组合:1、眼睛和头的关系2、鼻子和头的关系3、学生和老师的关系4、电脑和硬盘的关系5、电器和电池的关系关于类之间的关系,我们知道有三种:继承、包含和关联。前面我们借着讲继承的概念,顺便用UML图形建模描述了继承关系和包含关系,为了概念的完整性,我们再进

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。