【教学课件】第11章面向对象的软件开发方法.ppt

上传人:wuy****n92 文档编号:69844223 上传时间:2023-01-09 格式:PPT 页数:44 大小:368.47KB
返回 下载 相关 举报
【教学课件】第11章面向对象的软件开发方法.ppt_第1页
第1页 / 共44页
【教学课件】第11章面向对象的软件开发方法.ppt_第2页
第2页 / 共44页
点击查看更多>>
资源描述

《【教学课件】第11章面向对象的软件开发方法.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第11章面向对象的软件开发方法.ppt(44页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第第11章章 面向对象的软件面向对象的软件开发方法开发方法1一、面向对象的基本概念一、面向对象的基本概念n“面向对象“:OO 代表着一种新的思维方式,代表着一种新的程序设计方法的潮流。n“面向对象”追求软件系统对现实世界的直接模拟,尽量实现将现实世界中的事物直接映射到软件系统的解空间。n面向对象的程序设计技术是以对象为基础,以消息驱动对象实现操作的一种全新的程序设计方法。2面向对象方法的由来面向对象方法的由来nOO方法最早出现在挪威奥斯陆大学和挪威计算中心共同研制的仿真语言Simula67中。n1980年随美国加州的Xerox研究中心推出的SmallTalk 80语言,使得OO方法得以较完善地

2、实现。n90年代初,OO方法和OOP语言开始成熟。n2000,OO方法成为软件开发的首选方法受到越来越多的程序设计人员的青睐。3什么是面向对象方法什么是面向对象方法n传统的程序设计方法:u从实际问题到求解模型(数学模型)的抽象都是围绕”怎样做?“去进行的。n人认识事物的规律:u当物体反映到头脑中后,变成意识,得到抽象的概念,及所谓逻辑世界。n逻辑世界:u由对象组成,表现现实世界中的某个具体的事物。对象有自己的属性和动作。n面向对象(OO)方法的出发点:u”是什么?“,即要求解的实际问题,它到底”是什么?“。4面向对象方法产生的背景面向对象方法产生的背景n传统方法的历史功绩u对”软件生产工程化“

3、曾起过重要的促进作用,部分缓解了软件危机。n传统方法的问题u并不能完全消除软件危机u生产率提高的幅度远不能满足需要u软件重用程度很低u软件维护困难u软件不能真正满足用户的需要n面向对象方法(OO)就是在这种背景下诞生的。5现实世界与现实世界与OO系统的对应关系系统的对应关系nOO方法是将现实世界抽象为”对象是什么?“,所以说,OO方法是更高一级的抽象。它和人认识现实世界的方法是一致的。物质:一辆白色的自行车意识:自行车具体事物:一个对象自行车的实例抽象概念:自行车类现实问题空间现实问题空间 面向对象解空间面向对象解空间6面向对象程序设计面向对象程序设计OOPnOOP(OOProgramming

4、)将数据及对数据的操作放在一起,作为一个相互依存、不可分割的整体来处理。nOOP采用数据抽象和信息隐藏技术,它将对象和对对象的操作抽象成一种新的数据类型类。7nOOP方法是通过增加软件的可扩充性和可重用性来改善并提高软件的生产率的。nOOP的特点:u继承了SP的优点(任务分解、模块化)u抽象数据类型u继承性u封装性u可重用性8OO方法的方法的4个要点个要点n(1)客观世界由各种对象组成uOO的软件系统也是由对象组成的;任何复杂的软件都是由简单的对象组合而成的;n(2)所有对象都可以划分为不同的对象类n(3)每个对象类有自己特定的数据和方法u对象类具有层次结构;上层的类称为”父类“或”基类“,下

5、层的类称为”子类“或”派生类“。子类可以继承父类的特性及操作;n(4)对象之间通过传递”消息“互相联系(消息机制)uOO方法=对象+类+继承性+消息机制 9OO方法的主要优点方法的主要优点n与人类习惯的思维方法一致u从“是什么”开始,认识事物及其本质规律,主观随意性受到限制。n稳定性好u功能需求变化时,内在规律不变,因而不会引起软件系统结构的整体变化n可重用性好n可维护性好10面向对象程序设计语言面向对象程序设计语言OOPLnOOPL两个显著的特征:u抽象数据类型u继承性nOOPL要提供:u特定的语法成分来保证和支持OOP;形式上要能够表现,语义上要能够处理;u继承性、多态性和动态链接机制,使

6、得类和类库成为可重用的程序模块。11OOPL的发展史的发展史n1)LISP语言u 50年代末发展起来的一种符号处理语言,是一种人工智能语言。1979年推出Flavors是LISP的OOPL版本。n2)Simula语言 u60年代开发,在ALGOL60的基础上扩充。主要用于模拟。具有表加工等功能。12n3)SmallTalk语言 u第1个真正的OOPL,它体现了纯粹OOP设计思想。它起源于Simula,是最成功的一个版本。n4)C家族 uC+是在C基础上扩充、增加了对象处理机制,将“类”看作是用户定义类型。由于C+的出现,才使OOPL越来越得到重视和广泛的应用。C+有许多种类:MS C+、Tur

7、bo C+、Borland C+和Visual C+等。n5)其它语言的OO版本uTurbo PASCAL、Object PASCAL、Visual Basic等。13实体和对象实体和对象n对象 u客观世界中的实体均可以抽象为问题空间中的对象。u可以将要研究的任何事物作为对象;u对象可以是具体实体,还可以表示抽象实体,例如规则、算法、事件等。14对象对象Objectn对象的不同定义:n1)从OOP的角度看u对象是具有相同状态的一组操作的集合n2)从信息模拟的角度看u对象是对属性值和操作的封装n3)从存储的角度看u对象是存储在计算机中的一块私有存储区n4)形式化定义u对象:=ID,MS,DS,M

8、Iu ID 标识符 MS 操作集合u DS 数据结构 MI 消息集合15对象的三个特征对象的三个特征n1)标识 u用来区别其它对象;n2)状态 u用来描述对象的属性,用数据成员来表示;n3)行为 u对对象的操作,用于改变对象的状态;u行为分两类:u(1)自身所承受的操作u(2)施加于其它对象的操作16对象特征举例对象特征举例n某人王东,男,1.80M,68kg,会修电器,可教计算机课。描述如下:n1)标识:王东n2)状态:u性别:男 身高:1.80m 体重:68kgn3)功能:u自身所承受的操作:回答身高、体重、性别 u施加于其它对象的操作:修理电器、教计算机课程17对象封装对象封装n与录音机

9、类似,对象是封装了数据和操作的黑匣子。u数据描述了对象的状态u属性表示对象的结构特征u操作可以改变对象的状态u通过传递消息实现对象的操作18对象的特点对象的特点n以数据为中心 u所设操作都与数据要做的处理有关。n对象是主动的 u传统的数据被动地等待对它进行处理;对象本身是进行处理的主体。n实现了数据封装 u对象的私有数据完全被封装在内部,对外不可见。要使用私有数据,只需知道数据的取值范围和可以对该数据施加的操作,无须知道数据的具体结构以及实现操作的算法。n本质上具有并行性 u不同对象各自独立地处理自身的数据,彼此通过发消息传递信息完成通信。19类类Classn“类”:u对具有相同数据和操作的一

10、组相似对象的定义。n例如,“人“类,可以是黑人、白人,可以是教师、工人等,他们具有相同的人类特征和行为特征。n类是OO技术中最重要的概念。OOP中所有的操作都可归结为对类的操作。n类形成了一个具有特定功能的模块和一种代码共享的手段。20C+中对象类的定义举例中对象类的定义举例u CLASS person u Private:&私有数据和操作u char name20;u int age;u cahr address40;u char sex10;u void PrintName();u viod PrintAge();u void PrintAddress();u void PrintSex(

11、);结构特征数据成员行为特征 成员函数21u Public:&公有操作u void Print()u PrintName();u PrintAge();u PrintAddress();u PrintSex();u ;22类层次类层次n类的层次结构称为类层次。u处于上层的称为“父类”或“基类”,u处于下层的称为“子类”或“派生类”。23类层次举例类层次举例u1)“人”类是一个基类;u2)工人、农民、学生、教师是u “人”类的派生类;u 3)中学生、大学生、u 研究生是“学生”u 类的派生类u4)研究生、助教、u 教授是”教师“u类 的派生类。工人工人人人中学生中学生教师教师农民农民学生学生大学

12、生大学生研究生研究生助教助教讲师讲师教授教授父类父类派生类24实例实例Instancen组成类的对象,都是该类的实例。n类与实例之间的关系,可以看成是抽象与具体的关系。类是多实例的综合抽象,而实例又是类的个体实物。n例如,“书”是一个对象类,而软件工程导论则是“书”类的一个实例。n实际上类是建立对象时使用的样板,按照这个样板所建立的一个个具体的对象,就是类的实例例子。25 消息消息Messagen消息u对象之间相互请求或相互协作的途径,是要求某个对象执行其中某个功能操作的规格的说明。n发送消息的对象成为发送者,接收消息的对象称为接收者。n对象间的联系,只能通过传递消息来进行。对象也只能在收到消

13、息时,才被激活。被激活后的对象代码将按消息中的命令去操作它的私有数据,完成要求的功能。26消息的定义消息的定义n将操作送到目标对象的一种机制称为消息。它包括操作名的选择和传递、操作信息的变量有三个部分:u接收消息的对象u消息选择符u变元27消息的性质消息的性质n同一对象可接收不同形式的多个消息,产生不同的响应;即n 1个对象 M个消息 M个动作n相同形式的消息可以送给不同的对象,所做出的响应可以是截然不同的;即n M个对象 1个消息 M个动作n消息的发送可以不考虑具体的接收者,对象可以响应消息,也可以对消息不予理会,对消息的响应并不是必须的。28公有消息和私有消息公有消息和私有消息n公有消息

14、u在某个对象的一批消息中,由外界对象直接向它发送的消息,称为公有消息。n私有消息 u在某个对象的一批消息中,不对外发放,由对象自己向本身发送的消息,称为私有消息。29消息类型消息类型n可返回对象的内部状态的消息;n可改变对象的内部状态的消息;n可以做一些特定的操作,改变系统状态的消息。30事件(事件(Event)n当用户对某一对象有操作意图的时候,通过外部设备(鼠标、键盘等)输入必要的信息,计算机不但能够判断出事件的性质,而且能够判断出事件的特征,从而给对象一个准确的刺激,使对象进行预定的反应行为。n刺激对象的方式很多;例如,单击鼠标左键,计算机将接收到一组信号,确定鼠标单击事件的发生,而事件

15、的特征,包括鼠标的位置、鼠标的激活键等信息也同时被计算机接收,与对象联系起来,于是启动对象中对的事件处理程序,进行事件的处理。31方法(方法(Method)n对对象的处理称为方法或操作。它包括控制和操作过程。n方法描述了对象执行操作的算法、响应消息的方法,在C+中称为成员函数。n例如:uADD子公司()uPrint()32属性(属性(Attribute)n对象中的数据称为属性,它是对实体所具有的性质大抽象。C+中把属性称之为数据成员。n例如:uchar name20;uint age;33二、面向对象方法的特点二、面向对象方法的特点n抽象技术n封装技术n继承机制341.抽象技术(抽象技术(Ab

16、straction)n抽象是指将实际问题化简为计算机能处理和表示的形式。nOO方法比其它已有方法从应用设计到解决方案有更高的抽象性和更好的对应性。352.封装技术封装技术(Encapsulation)n1)封装u是指将数据及与这些数据有关的操作集合放在一起,形成一个能动的实体对象(黑匣子)。n2)用户不必知道对象行为的实现细节,只要根据对象提供的外部特征及接口来访问对象。n3)封装性u一种信息隐藏技术,其目的是将对象的设计者和对象的使用者分开。36n4)封装性的体现u具有清楚的边界 对象的数据结构和操作限定与其中u具有统一的外部接口它描述了对象之间的相互作用、请求和响应u代码保护 对象内部的实

17、现代码受到封装壳的保护,其它对象不能直接修改本对象所拥有的数据和代码。n5)封装机制的目的u将对象的使用者和设计者分开;使用者不必知道对象行为实现的细节,只需用设计者提供的消息命令对象去实现其动作。37STUDENT对象类举例对象类举例n class student n private:私有功能:u char*name;u int mark;u char*major;u void changemark();n public:公有功能:u char*getname();u char*getmajor():n protected:被保护功能:u int getmark();n ;383.继承机制继

18、承机制(Inheritance)n1)继承u表达对象类之间的相互关系,它使得某类对象可以继承另一类对象的特征和能力。n2)继承性的含义u新的对象自动继承该类的特征n3)继承性的类型 n 继承传递性 u子类自动继承其父类的特征;对多层类结构,下层子类可以继承其上各层父类的特征;n 多重继承性 u子类可以从它的多个父类(超类)中继承它们的特征39继承性举例继承性举例u继承传递:大学生可以继承“人”和“学生”的特征u多重继承:在职研究生既可以继承“学生”的特征,又可以继承“教师”的特征人人身份证号:身份证号:姓名:姓名:大学生大学生专业:专业:班级:班级:学生:学生:学生:学生:9601078校名:

19、西安交通大学校名:西安交通大学大学生:大学生:专业:计算机专业:计算机班级:班级:962班班学号:学号:校名校名学生学生身份证号:身份证号:xxxxxxx姓名:刘小明姓名:刘小明人:人:40具有继承关系的对象的特性具有继承关系的对象的特性n对象类间具有共享特征(包括数据和程序代码的共享)n对象类间具有细微的差别或新增部分(包括非共享的程序代码和数据)n对象类间具有层次结构。n继承所具有的作用有两个方面:u减少代码冗余u通过协调性减少相互之间的接口和界面。41继承的分类继承的分类n1)从继承源上划分为:单继承和多继承n2)从继承内容上划分n(1)取代继承 u徒弟掌握了师傅所有的技术,在任何需要师傅的地方都可以由徒弟来代替;n(2)包含继承u“水果”是一类对象,“苹果”是一种特殊的水果。“苹果”继承了“水果”的所有特征;任何一个苹果都是一个水果,即苹果包含了水果具有的所有特征;42n(3)受限继承u“驼鸟”是一种特殊的鸟,它不能继承鸟会飞的特征;n(4)特化继承u“工程师”是一类特殊的人,他们比一般人具有更多的特有信息。43继承性的优点继承性的优点n能清晰体现相关类间的层次结构关系;n可大大增加代码的重用性;n通过增强一致性来减少模块见的接口和界面,大大增加可维护性;n是自动传播代码的有利工具n在一般类基础上构造、建立、扩充新类的最有效的手段。44

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁