收藏 分销(赏)

面向对象的基本概念PPT.pptx

上传人:可**** 文档编号:887651 上传时间:2024-04-03 格式:PPTX 页数:32 大小:214.42KB
下载 相关 举报
面向对象的基本概念PPT.pptx_第1页
第1页 / 共32页
面向对象的基本概念PPT.pptx_第2页
第2页 / 共32页
面向对象的基本概念PPT.pptx_第3页
第3页 / 共32页
面向对象的基本概念PPT.pptx_第4页
第4页 / 共32页
面向对象的基本概念PPT.pptx_第5页
第5页 / 共32页
点击查看更多>>
资源描述

1、 怎样划分模块:(按)功能:每个模块做且仅做一件事;数据结构:每个模块仅容纳一个数据结构事件驱动:每个模块识别一个事件且对这 个事件做出反应;现实世界中的事物:每个模块对应现实世 界中的唯一一件事物(称之为 对象)。面向对象(Object-Oriented)不仅是一些具体的软件开发技术与策略,而且是一整套关于如何看待软件系统与现实世界的关系以及如何进行系统构造的软件方法学。特点:特点:(1)面向对象的技术建立的模型与客观世界一致,因而便于理解(图3.1);(2)适应变化的需要,修改局限在模块中;(3)可复用性1.3.2对象(Object)一般意义来讲,对象是现实世界中存在的一个事物,可以是有形

2、的,如一个桌子,可以是无形的,如一个开发项目。对象是构成现实世界的一个独立的单位,具有自己的静态特征(用数据描述)和动态特征(行为或具有的功能)。举例:张三、李四。软件系统中抽象地表示现实世界中的对象,数据表示特征,用操作表示对象的行为。例:人:姓名、年龄、职业等特征,跑、跳等行为;(1)定义:对象是系统中用来描述客观事物的一个实体,是构成系统的一个基本单位,由一组属性和一组对属性进行操作的服务组成。例图 3.3 TomOperationsOperationsStore AgeAge?WalkDanc(2)信息隐藏:从对象外部看不知道对象的信息是怎样定义的,不知道操作是如何实现的,只知道有什么

3、操作。信息:如年龄、性别,又称对象的状态。什么类型?长度?操作:用于存取信息,也可以与内部信息无关,如跳舞。(3)对象间的关系:例如,发票对象知道顾客对象,哪个顾客哪个单位要开发票。人可以知道另一个人,相互认识。两种关系:静态关系:长期存在的关系,两个对象相互知道对方是否存在。例:组成关系是一种静态关系,Tom是由他的头、胳膊、腿和躯干组成。图3.4 为什么将人划分成几个组成部分?便于理解,实现,可复用。(两个胳膊复用)动态关系:对象间互相进行通信。例:跳舞,一个人请另一个人一起跳舞,动态地建立关系。(4)如何定义信息和行为:图3.6 从对象内部看。(5)消息:对象发出的服务请求称为消息 (用

4、来激发对象的一个行为)。1.3.3 类和实例 系统是由许多相互通信的对象组成的,对象有些共同的特征,根据特征可以将对象分组,称为类。如:Tom、Mary和John三个人有类似的行为和信息结构。因此可以定义Person类。(1)类的定义:类是某些对象的模板,抽象地描述了属于该类的全部对象的内部结构,同一类对象的信息属性和操作。(2)实例的定义:实例是由类建立的对象。类描述了实例的结构,而实例的当前状态是由实例的执行的操作定义的。举例:图3.10 Tom、John和Mary是类Person的实例,不同的实例有自己的标识,具有各自的信息(状态)。由于操作可能不同,因此状态也不同。(3)怎样划分类 把

5、类Person中共同的信息和操作提取出来,放在一个类中,实际上具有不同的属性。如由于性别不同,因此建立两个新类Male和Female。如图3.12 ,图3.13 。共同:这两个类有共同的信息和行为,Age,Friend,Address,Jump,Walk应该抽象出来,避免重复,这在以后讨论。不同:Dance,Husband,Wife(4)怎样建立一个实例:由类的行为建立实例。图3.10 (相对于对象的行为)总结:类定义了对象的操作和信息结构,实例是由类建立的,定义了对象的状态。1.3.4 继承性(1)概念:类之间具有共性(信息结构和行为),抽取出来放在一个一般类中,如把Male和Female中

6、共同的特性放在Person类中,不同的特性放在特殊类中分别描述,特殊类的对象拥有一般类的全部属性与服务,称作特殊类对一般类的继承。Male和Female类可以从Person类继承共性,这样避免了重复。见图3.14 复用共同的描述,继承性往往被看作是软件复用的核心概念。(2)好处:易编程、易理解 代码短,结构清晰易修改 共同部分只要在一处修改即可易增加新类 只须描述不同部分 术语:父类子类,一般特殊,祖先后代,基类派生类,直接父类,直接子类 表示:带箭头的虚线 父类不知道子类 子类知道父类(3)怎样建立一个好的继承层次 类可以从父类继承,父类又可以从它的父类继承,形成多层次的继承结构。当增加一个

7、新类时,不一定在最低层,可能需要插在中间层,这样可能破坏原来的层次结构,或需要调整原来的层次结构。例:图3.14 上例中增加两个对象James和Lawrence都是男性的老人,他们与年青人有什么不同呢?跳舞的动作不同,比较慢。增加一个新类:Old Male与已有类的关系是什么样的?见图3.16 有三种方案:(a)Old Male和Male中有共性(b)Old Male中修改Male中Dance的功能(c)新建一个类young Male,old Male与young Male中有不同的特性 到底选择哪一种方案,具体情况而定,第三种情况结构清楚,但要修改原有的类。第一种增加一个类old Male重

8、复太多,概念不清楚,不可取;(不修改原有的类)第二种增加新类继承关系中Dance具有不同的行为,第三种只增加不同的部分,共同部分放在Male中,是可取的。但如再增加一类小男孩,则还会涉及修改Male。(不修改原有的类)权衡选择第二、三种。继承层次中增加的新类的4种方法:在继承类中,由下向上找一个合适的类作为父类;完全独立的一个类,不能在已有的类中继承重新构造继承层次,见图3.17 。加ABF类,找不到一个合适的类作为直接父类,重新构造原来的层次。好处:层次结构清楚;问题:a找出更好的层次结构 b修改工作量较大。重新定义所需要的特征,称为重载(Overriding)。例图3.16(b)好处:容易

9、且灵活地修改已有类;问题:在类的层次结构中一些操作具有同样的名字,但不同的语义(在不同类中),要知道操作的功能,必须向上找到定义操作的类(4)代码复用 通过继承性可以实现代码复用 建立类库(应用领域)当增加新类时,从类库中找到一个适合的类,从中继承,然后扩充或修改得到所需功能。(不必从0开始实现系统)(5)多继承 如果一个类需要用到多个已有类的特征,可以从多个类中继承,称为多继承。这意味着一个类可以有多个直接的祖先。例如船屋是可以从房子和船这两个类继承得到一个类,从两个类中抽取共同的部分构成一个新的类,图3.19 ,重新构造类的结构。问题:继承层次结构不好理解。如果祖先中具有相同名字但不同定义

10、的操作时,产生问题;到底继承的是什么操作;解决:用户必须选择某个祖先的定义或重新定义操作,图3.20 ,共同的祖先,重新定义过,名字冲突问题。1.3.5 多态性 对象互相通信,即一个对象发消息给另一个对象,执行某些行为或又发消息给另外的对象,从而执行系统的功能。发送消息的对象可能不知道另一个对象的类。例如在上述例子中,一个人的朋友可以是男的,也可以是女的,例如Tom的朋友可能是John或Mary,因此对于Male类的对象不知道朋友实例将属于哪一类。多态性意味着一个操作在不同类中可以有不同的实现方式。如Dance的实现Male和Female是不同的。(1)定义:多态性意味着消息的发送者不必知道接

11、收实例的类,接收实例可以属于任何类。(2)动态绑定:只有发送消息时才与接收实例的一个操作绑定。(3)受限的多态性:实际上接收实例是受一定条件限制的。(4)好处:发送者只知道另一个实例可以执行某个行为,但不知道该实例属于哪个类。因此多态性使我们建立的系统很灵活,易扩充。如打印功能,打印某页到某页,发送print命令,打印设备可以是任意类型。可以是子类的实例,增加一种新的打印设备,不必修改,发送打印命令的类也不必修改其它设备的类。1.3.6总结:(1)面向对象是一种建模的技术,由于它与人们认识世界的方法非常一致,所以建立的模型容易理解。(2)对象有类似性因而用类来描述;类描述了类似对象的行为和信息

12、,封装性 使用者不需知道怎样实现,只要知道它的外部功能,因此修改可局限在类的内部,系统易维护。多态性,使对象可以不必知道与它通信的对象的确切的类,因此容易增加新类,易扩充系统功能,不需修改其它类使用继承性可以方便地复用已有代码,只需增加新代码,或修改已有功能时不必修改已有代码,只需定义新的行为;继承性必须正确使用,否则使系统的结构很难理解和不易维护,因为类的相同名字的行为功能可能不同。结束HeadBodyBodyArmArmLegLegFigure 3.4 A model of a person can be composed with the objects head,legs,arms a

13、nd body.TomTomInformationInformationAgeWifeFriendAddress.PartsPartsmyLeftlegmyRightlegmyHeadmyBodymyRightArmmyLeftArmBehaviorBehaviorStoreAgeAge?Jump Bend myLeftLeg and myRightLeg Stretch myLeftLeg and myRightLeg Lift myRightArm.Walk.Dance.Figure 3.6 The inside of object Tom.Only the behavior for Ju

14、mp is shown.Class personClass personInformationInformationAgeFriendAddress.PartsPartsmyLeftlegmyRightlegmyHeadmyBodymyRightArmmyLeftArmBehaviorBehaviorStoreAgeAge?JumpWalk.Dance.Figure 3.10 Tom,John and Mary are all instances of the class Person.Create an InstanceCreate an InstanceCreate myLeftLegcr

15、eate myRightLegCreate myHeadCreate myBodyInstance ofTomTomMaryMaryJohnJohnInstance ofParts:Parts:myLeg from class LegmyHead from class Head.Class BodyClass BodyClass HeadClass HeadClass LegClass LegFigure 3.11 Instances of one class can recognize instances of another.The relevant classes are defined

16、 in the original class.Operation:StoreAgeJumpDanceWalk.Operation:StoreAgeJumpDanceWalk.Class MaleClass MaleClassClass FemaleFemaleinstance ofTomTomJohnJohnMaryMaryinstance ofinstance ofFigure 3.12 Male and Female are separate classes.InformationInformation:AgeHusandFrendAddress.PartsPartsmyLeftLegmy

17、RightLegmyHeadmyBodymyRightArmmyLeftArm.BehaviorBehaviorJumpWalkDance Ask friend to Dance Jump Walk Jump Shake myHead Shake myBody Bend myRightLeg Stretch myRightLeg.Create an InstanceCreate an Instance.InformationInformation:AgeWifeFrendAddress.PartsPartsmyLeftLegmyRightLegmyHeadmyBodymyRightArmmyL

18、eftArm.BehaviorBehaviorJumpWalkDance Jump Shake myBody Jump Shake myHead Jupm.Create an InstanceCreate an Instance.Figure 3.13 The inside of class Male and FemaleClass FemaleClass FemaleClass MaleClass MaleInformationInformation:AgeWifeFrendAddress.PartsPartsmyLeftLegmyRightLegmyHeadmyBodymyRightArm

19、myLeftArm.BehaviorBehaviorStoreAgeAge?Walk.Create an InstanceCreate an Instance.Figure 3.14 Class with inheritanceClass PersonClass PersonBehaviorBehaviorJumpDance.BehaviorBehaviorJumpDance.Class MaleClass MaleClass FemaleClass FemaleinheritsinheritsStoreAgeAge?Walk.DanceJump MaleDanceJump Old MaleD

20、anceJump FemalePersonPerson ins ins insStoreAgeAge?Walk.DanceJumpDanceJumpDance(new)ins insPersonPerson Female Male Old MaleStoreAgeAge?Walk.DanceJumpPersonPerson insDanceJump Male insDanceDance ins ins Old Male Young MaleFigure 3.16 Female(a)(b)(c)A+BC=(ABC)+E=(ABCE)+D=(ABCD)ABFWe Wantinheritsinher

21、itsinheritsA+B=(AB)inherits+C=(ABC)+F=(ABF)+D=(ABCD)+E=(ABCE)inheritsinheritsinheritsinheritsbecomes withrestructuringNew class addedWanted class Figure 3.17Existing classes:ABCEFGAEWe want:restructuringAE+BC=(ABC)=(AE)+FG=(EFG)insinsinsinsNew classesFigure 3.19 Multiple inheritance.The middle class inherits the descriptions from two other classes.A(.A.)(.A.)(.A.)(.A.)insinsMore inheritance hierarchies(possibly redefining)?insins Which A to choose?Figure 3.20 Repeated inheritance.The same characteristic exists in two parents.How is this detected and which should be chosen?

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服