面向对象程序设计教程优秀PPT.ppt

上传人:石*** 文档编号:82700367 上传时间:2023-03-26 格式:PPT 页数:34 大小:2.40MB
返回 下载 相关 举报
面向对象程序设计教程优秀PPT.ppt_第1页
第1页 / 共34页
面向对象程序设计教程优秀PPT.ppt_第2页
第2页 / 共34页
点击查看更多>>
资源描述

《面向对象程序设计教程优秀PPT.ppt》由会员分享,可在线阅读,更多相关《面向对象程序设计教程优秀PPT.ppt(34页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、面向对象程序设计教程第一页,本课件共有34页2022/12/72022/12/7JavaJava面向对象程序设计教程面向对象程序设计教程2 2主要内容n n1.1 1.1 面向过程与面向对象的方法论比较面向过程与面向对象的方法论比较 1.1.1 1.1.1 关于系统建模方法关于系统建模方法 1.1.2 1.1.2 关于程序设计方法关于程序设计方法 1.1.3 1.1.3 面向过程方法的优势面向过程方法的优势 1.1.4 1.1.4 面向对象方法的优势面向对象方法的优势 1.1.5 1.1.5 结合面向过程与面向对象方法的应用优势结合面向过程与面向对象方法的应用优势 1.1.6 1.1.6 历史

2、反思历史反思n n1.2 1.2 面向对象技术的基本原则面向对象技术的基本原则n n1.3 1.3 面向对象技术的基本要素面向对象技术的基本要素 1.3.1 1.3.1 封装性封装性 1.3.2 1.3.2 继承性继承性 1.3.3 1.3.3 多态性多态性 1.3.4 1.3.4 面向对象概念和术语总结面向对象概念和术语总结n n1.4 1.4 面向对象的软件开发体系面向对象的软件开发体系 1.4.1 1.4.1 面向对象框架下软件开发的生命周期面向对象框架下软件开发的生命周期 1.4.2 1.4.2 面向对象相关技术的基本概念面向对象相关技术的基本概念 1.4.3 1.4.3 面向对象程序

3、设计的重要性面向对象程序设计的重要性 1.4.4 1.4.4 面向对象分析与设计的重要性面向对象分析与设计的重要性 1.4.5 Java1.4.5 Java的地位的地位第二页,本课件共有34页1.1 面向过程与面向对象的方法论比较第三页,本课件共有34页2022/12/72022/12/7JavaJava面向对象程序设计教程面向对象程序设计教程4 4系统建模方法 n n软件危机与系统建模方法的发展n n两种流行的建模方法:面向过程建模方法面向对象建模方法第四页,本课件共有34页2022/12/72022/12/7JavaJava面向对象程序设计教程面向对象程序设计教程5 5面向过程的建模方法和

4、建模语言 n n始于20世纪70年代的结构化分析设计(Structured Analysis and Design,SAD)方法。n n把一个系统看作是功能的集合,可以进行分解。n n用数据流图设计系统的模块结构。n nIDEF(ICAM DEFinition method)图形化建模语言是面向过程建模技术的代表。第五页,本课件共有34页2022/12/72022/12/7JavaJava面向对象程序设计教程面向对象程序设计教程6 6IDEF的基本表示法 n n盒子代表活动,连到盒子上的箭头表示由活动产生的、或活动所需要的信息盒子代表活动,连到盒子上的箭头表示由活动产生的、或活动所需要的信息或

5、真实对象。或真实对象。n n盒子左边及上方进入的箭头表示为完成此活动所需要的数据,控制说明了控盒子左边及上方进入的箭头表示为完成此活动所需要的数据,控制说明了控制变换的条件或环境,或者说是约束;制变换的条件或环境,或者说是约束;n n右边离开盒子的箭头表示执行活动时产生的数据;右边离开盒子的箭头表示执行活动时产生的数据;n n下方的箭头作为执行的机制,可以是执行活动的人或设备。下方的箭头作为执行的机制,可以是执行活动的人或设备。n n箭头限制了盒子间的关系,而不是表示活动的顺序。箭头限制了盒子间的关系,而不是表示活动的顺序。第六页,本课件共有34页2022/12/72022/12/7JavaJ

6、ava面向对象程序设计教程面向对象程序设计教程7 7面向对象的建模方法与建模语言 n n发源于发源于2020世纪世纪60年代,年代,Simula语言中引入了类语言中引入了类(ClassClass)的概念;)的概念;n n但真正的面向对象程序设计是SmalltalkSmalltalk语言奠定语言奠定基础的,基础的,“面向对象面向对象”一词也是SmalltalkSmalltalk首先采用首先采用的;的;n nC+的问世促进面向对象技术的发展,也使之成为的问世促进面向对象技术的发展,也使之成为标准化的面向对象程序设计语言。标准化的面向对象程序设计语言。n n2020世纪9090年代初,年代初,Boo

7、chBooch、Jocobson、Rumbaugh一起开发了统一建模语言(Unified(Unified Modeling Language,UML)Modeling Language,UML)。UMLUML可以用于确定、可以用于确定、展示和记录软件系统,展示和记录软件系统,UML中的图形标记尤其适用于中的图形标记尤其适用于面向对象的软件设计。面向对象的软件设计。第七页,本课件共有34页2022/12/72022/12/7JavaJava面向对象程序设计教程面向对象程序设计教程8 8UML的基本表示法n nUML有一套复杂的标记法,这里只给出对类的基本表示,就是在一个矩形框中可以详细描述类(抽

8、象类、接口、对象实例等)的名称、属性和操作。第八页,本课件共有34页2022/12/72022/12/7JavaJava面向对象程序设计教程面向对象程序设计教程9 9面向过程程序设计方法 n n从程序设计范型(Paradigm,指设计程序的规范、模型和风格)看:程序=过程(定义)+(过程)调用。n n从程序语言角度出发,依靠各种循环、函数调用、参数传递维护程序。n n重视程序流程,不在乎数据的传递方式,只要程序能运行就可以了。第九页,本课件共有34页2022/12/72022/12/7JavaJava面向对象程序设计教程面向对象程序设计教程1010面向过程程序设计方法的缺点n n子程序(过程)

9、的抽象级别(函数)太低,难以重用。n n需要花相当多的成本维护程序与程序之间的关联性。n n数据和操作相分离,当一个或多个数据的结构发数据和操作相分离,当一个或多个数据的结构发生了变化,这种变化将波及程序的很多部分甚至生了变化,这种变化将波及程序的很多部分甚至遍及整个程序,往往变量和参数传来传去,传到遍及整个程序,往往变量和参数传来传去,传到最后根本就不知道这个变量的作用何在,故程序最后根本就不知道这个变量的作用何在,故程序的复杂性很难控制。的复杂性很难控制。n n已不适宜描述复杂的数据对象。第十页,本课件共有34页2022/12/72022/12/7JavaJava面向对象程序设计教程面向对

10、象程序设计教程1111面向对象软件开发方法 n n面向对象程序的基本元素为对象(面向对象程序的基本元素为对象(Object)。)。n n程序结构一般由类的定义和类的使用两部分组成。程序结构一般由类的定义和类的使用两部分组成。n n程序中的一切操作都是通过向对象发送相应的消息来程序中的一切操作都是通过向对象发送相应的消息来实现:对象接收到消息后,启动有关的方法完成相应实现:对象接收到消息后,启动有关的方法完成相应的操作。的操作。n n从面向对象程序设计范型看:从面向对象程序设计范型看:程序程序 =对象对象 +消息。消息。第十一页,本课件共有34页2022/12/72022/12/7JavaJav

11、a面向对象程序设计教程面向对象程序设计教程1212面向对象技术的优点 n n直观性 n n可增加程序的模块性(Modularity)n n可提高程序的可复用性(Reusability)n n增加可扩展性(Extendibility)n n可改善程序的可维护性(Maintainability),减少维护负荷 n n可控制程序的复杂性 n n可改进质量,降低成本 第十二页,本课件共有34页2022/12/72022/12/7JavaJava面向对象程序设计教程面向对象程序设计教程1313面向对象技术的缺点与困难n n面向对象需要完全改变每个人的思想以及开发文化 n n面向对象不仅仅是编程 n n面

12、向对象需要更关注于需求、分析和设计 n n开发人员必须和用户紧密合作 n n面向对象的许多优点要经过较长的时间才能显示出来 n n面向对象技术不能保证你能构建出正确的系统 第十三页,本课件共有34页2022/12/72022/12/7JavaJava面向对象程序设计教程面向对象程序设计教程1414讨 论n n面向过程方法的优势 n n面向对象方法的优势 n n结合面向过程与面向对象方法的应用优势 n n历史反思第十四页,本课件共有34页1.2 面向对象技术的基本原则第十五页,本课件共有34页2022/12/72022/12/7JavaJava面向对象程序设计教程面向对象程序设计教程1616OO

13、(Object Orientation)四原则 n n抽象(Abstraction)n n封装(Encapsulation)n n模块化(Modularity)n n分层(Hierarchy)第十六页,本课件共有34页2022/12/72022/12/7JavaJava面向对象程序设计教程面向对象程序设计教程1717问题域的合理抽象 n n实体抽象实体抽象 一个对象表示一个对象表示一个问题域的实体的有用一个问题域的实体的有用模型。模型。n n动作抽象动作抽象 一个对象提一个对象提供一个通用化的操作集,供一个通用化的操作集,它们的执行是相似或有它们的执行是相似或有关联的功能。关联的功能。n n子

14、系统抽象子系统抽象 一个对象是一一个对象是一组对象和操作的集合,它们组对象和操作的集合,它们是一个大系统的特定组成部是一个大系统的特定组成部分。分。n n对象设计成败的关键就是抽象对象设计成败的关键就是抽象类型必须符合人们对该客观事类型必须符合人们对该客观事物的认识习惯,这就要求设计物的认识习惯,这就要求设计人员对问题域应该有深入的理人员对问题域应该有深入的理解,并且具有较强的综合分析解,并且具有较强的综合分析能力,而达到这一步往往是有能力,而达到这一步往往是有难度的。难度的。第十七页,本课件共有34页1.3 面向对象技术的基本要素第十八页,本课件共有34页2022/12/72022/12/7

15、JavaJava面向对象程序设计教程面向对象程序设计教程1919写字课老师:强调“飞凤家”遥远的记忆,仍耳熟能详面向对象老师:强调“PIE”多态(Polymorphism)继承(Inheritance)封装(Encapsulation)“写好飞凤家”对于学习面向对象的启示 第十九页,本课件共有34页2022/12/72022/12/7JavaJava面向对象程序设计教程面向对象程序设计教程2020封装性 n n外界要改变一个对象的状态,也就是对它所包含的数据进行操作,只能向该对象发出请求消息,然后由该对象的对应方法来改变其自身的状态。n n是一种典型的“黑箱”机制。n n有利于代码复用和信息隐

16、藏。第二十页,本课件共有34页2022/12/72022/12/7JavaJava面向对象程序设计教程面向对象程序设计教程2121信息隐藏(Information hiding)n n如果一个类想获取另一如果一个类想获取另一个类的信息,必须先征个类的信息,必须先征得同意,而不是直接拿得同意,而不是直接拿来就用;来就用;n n意味着类模块中除了意味着类模块中除了向外界提供的接口以向外界提供的接口以外,还有大量不为外外,还有大量不为外界所知的用以支持这界所知的用以支持这些接口实现的属性和些接口实现的属性和方法。方法。第二十一页,本课件共有34页2022/12/72022/12/7JavaJava面

17、向对象程序设计教程面向对象程序设计教程2222继承性 n n继承是在类、子类以及对象之间自动地共享属性和方法的一种机制。n n继承具有传递性,即如果有类C继承B,B(间接)继承A,则C(间接)继承A。n n一个类实际上继承了层次结构中在其上面的所有类的全部描述。第二十二页,本课件共有34页2022/12/72022/12/7JavaJava面向对象程序设计教程面向对象程序设计教程2323继承性保证类可合理层次化第二十三页,本课件共有34页2022/12/72022/12/7JavaJava面向对象程序设计教程面向对象程序设计教程2424多态性 n n同一个方法名的操作不仅仅定义一种行为,因此有

18、比较强的表达能力和更多的用途。n n多态形式:参数多态(即重载,Overload)包含多态(即覆盖,Override)n n多态为描述客观事物提供了极大的能动性。第二十四页,本课件共有34页2022/12/72022/12/7JavaJava面向对象程序设计教程面向对象程序设计教程2525不同人对play()请求的响应第二十五页,本课件共有34页2022/12/72022/12/7JavaJava面向对象程序设计教程面向对象程序设计教程2626面向对象概念和术语 abstract class(抽象类)对象不能从中实例化的类abstraction(抽象)某项目(如类或操作)的基本特征aggreg

19、ation(聚合)表示两个类或组件之间是“is part of”关系aggregation hierarchy(聚合层次)通过聚合联系的一组类association(关联)对象和其它对象发生联系attribute(属性)类知道的东西(数据/信息)cardinality(基数)表示概念“多少”?class(类)相似对象的软件抽象,创建对象的模板cohesion(内聚)封装单元(例如组件或类)的相关程度collaboration(协作)类协作来完成它们的职责第二十六页,本课件共有34页2022/12/72022/12/7JavaJava面向对象程序设计教程面向对象程序设计教程2727面向对象概念和

20、术语(续)component(组件)可以独立开发、分发以及与其它组件一起构建较大单元的内聚功能单元composition(组合)更强类型的聚合,其中“整体”完全负责它的各组成部分,每“部分”对象仅和一个“整体”对象相联系concrete class(具体类)可以进行对象实例化的类coupling(耦合)两个项目的依赖程度encapsulation(封装)把相关的概念(例如类或组件)归组到一个项目information hiding(信息隐藏)限制外部对属性的访问inheritance(继承)表示“is a”、“is like”或“is kind of”关系inheritance hierarc

21、hy(继承层次)通过继承相联系的一组类instance(实例)对象是类的一个实例第二十七页,本课件共有34页2022/12/72022/12/7JavaJava面向对象程序设计教程面向对象程序设计教程2828面向对象概念和术语(续)instantiate(实例化)从类中实例化对象interface(接口)定义内聚行为集的一个或多个操作特征标记的集合message(消息)消息是信息请求或执行一个动作的请求messaging(消息传递)为了协作,类互相发送与接收消息method(方法)类完成的事情(与结构化编程中的函数相似)multiple inheritance(多重继承)类直接从一个以上的类继

22、承object(对象)一个人、地址、物品、事件、概念、屏幕显示或者报表object space(对象空间)主存,加上网络上所有可供使用的存储空间optionality(可选性)表示概念“你想要吗?”override(覆盖)有时在子类中你需要覆盖(重定义)属性与方法第二十八页,本课件共有34页2022/12/72022/12/7JavaJava面向对象程序设计教程面向对象程序设计教程2929面向对象概念和术语(续)pattern(模式)考虑到相关因素时通用问题的可复用方案persistence(持久性)对象怎样永久被保存的问题persistent object(持久对象)一个保存到永久存储的对象

23、polymorphism(多态)以不同方式响应同一消息的不同对象,使对象可以不必知道相互的类型而交互single inheritance(单一继承)一个类直接从唯一一个类继承stereotype(原型)表示一种建模元素的通用用法subclass(子类)如果类B继承自类A,我们说B是A的子类superclass(父类)如果类B继承自类A,我们说A是B的父类transitory object(临时对象)一个没有被保存到永久存储的对象第二十九页,本课件共有34页1.4 面向对象的软件开发体系第三十页,本课件共有34页2022/12/72022/12/7JavaJava面向对象程序设计教程面向对象程序

24、设计教程3131面向对象框架下软件开发的生命周期 第三十一页,本课件共有34页2022/12/72022/12/7JavaJava面向对象程序设计教程面向对象程序设计教程3232OO框架下软件项目开发的一般过程 业务业务模型模型需求模型需求模型分析模型分析模型设计设计模型模型实现实现模型模型测试测试模型模型关键UML元素业务流程(用例)、业务域对象系统、角色、用例、交互业务包/类/对象/消息软硬件配置、包/类/对象/消息组件、节点、编码测试计划和测试案例关键问题业务建模系统黑箱建模不含实现细节的问题域业务元素建模面向特定实现(如软硬件配置)分析图及其说明书更改分布式环境物理元素建模以及按需求编

25、码单元(类/操作)测试、集成系统测试目标(元素之间的低耦合高聚合)足够的业务或企业信息足够的用例/方案信息以及递增/迭代计划满足需求的最简单业务/问题域模型支持最大编码或手工编码的足够信息优化组件框架(网络性能等)足够的测试内容静态结构图业务域对象角色方框图及用例图包/类图包/类图组件与配置图,逆向类图第三十二页,本课件共有34页2022/12/72022/12/7JavaJava面向对象程序设计教程面向对象程序设计教程3333OO框架下软件项目开发的一般过程(续)业务业务模型模型需求模型需求模型分析模型分析模型设计设计模型模型实现实现模型模型测试测试模型模型动态时基图业务流程(用例)用例图、

26、各用例方案的顺序图、活动图各用例方案的顺序图,状态基类型的状态图及复杂操作的活动图各用例方案的顺序图,状态基类型的状态图及复杂操作的活动图选择性更改显示分布信息的顺序图关键团队成员业务分析师业务分析师业务分析师开发工程师架构师,开发工程师开发工程师,测试工程师模型确认项目经理、架构师、客户项目经理、架构师、客户项目经理、架构师、客户项目经理、架构师项目经理、架构师项目经理、架构师、客户第三十三页,本课件共有34页2022/12/72022/12/7JavaJava面向对象程序设计教程面向对象程序设计教程3434面向对象相关技术的基本概念及其关系 n n面向对象分析面向对象分析(Object Oriented Analysis,OOAObject Oriented Analysis,OOA)OOA=OOA=对象对象 分类分类 继承继承 消息通信消息通信 n n面向对象设计(Object Oriented Design,OODObject Oriented Design,OOD)n n面向对象程序设计面向对象程序设计(Object Oriented Programming,OOP)n nJava的地位的地位 第三十四页,本课件共有34页

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

当前位置:首页 > 生活休闲 > 资格考试

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com