1-面向对象软件开发概述ppt课件_第1页
1-面向对象软件开发概述ppt课件_第2页
1-面向对象软件开发概述ppt课件_第3页
1-面向对象软件开发概述ppt课件_第4页
1-面向对象软件开发概述ppt课件_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、面向对象软件开发面向对象软件开发概述概述本章介绍的有关概念将在后续章节中逐步加深理解教材第教材第1章章认识空间解空间认识空间解空间现实世界认识空间认识空间 解空间解空间计算机解决客观世界中问题的本质计算机解决客观世界中问题的本质n借助某种程序设计语言的规定,将客观世界中待处借助某种程序设计语言的规定,将客观世界中待处理的对象抽象为程序中的对象称为解空间对象)理的对象抽象为程序中的对象称为解空间对象)n 然后利用程序的功能对解空间对象进行处理,并将然后利用程序的功能对解空间对象进行处理,并将处理结果映射为问题的解。处理结果映射为问题的解。 现实世界中的对象现实世界中的对象解空间对象解空间对象机器

2、语言汇编语言面向对象语言高级语言程序设计语言程序设计语言解空间对象解空间对象n解空间对象是什么模型,要取决于所使用的程序设解空间对象是什么模型,要取决于所使用的程序设计语言:计语言:n汇编语言提供的对象汇编语言提供的对象 存储单元。存储单元。n面向过程的高级语言所提供的对象面向过程的高级语言所提供的对象 各种预定义各种预定义类型的变量、数组、记录和文件等。类型的变量、数组、记录和文件等。n面向对象语言提供的对象面向对象语言提供的对象 对象对象n一旦提供了某种解空间对象,也就隐含规定了允许一旦提供了某种解空间对象,也就隐含规定了允许对该类对象施加的操作。对该类对象施加的操作。面向过程语言面向过程

3、语言n面向过程的语言语言中所提供的解空间对象实质上仅面向过程的语言语言中所提供的解空间对象实质上仅仅是描述实际对象的属性数据,而缺少对象的行为。仅是描述实际对象的属性数据,而缺少对象的行为。n只有从外部对对象施加操作,才能模拟对象的行为。只有从外部对对象施加操作,才能模拟对象的行为。n面向过程的程序把数据和处理面向过程的程序把数据和处理n 人为地分开,会增加软件开发人为地分开,会增加软件开发n 的难度,也不利于为现实世界的难度,也不利于为现实世界n 中的对象建模。中的对象建模。数据区程序区面向对象观点面向对象观点n人们在观察和分析周围的事物时,经常是用一种面人们在观察和分析周围的事物时,经常是

4、用一种面向对象的观点看待问题。向对象的观点看待问题。n我们周围的世界是由各式各样的对象组成:我们周围的世界是由各式各样的对象组成:n 例如学校中,学生、老师、课程、班级、教室、计例如学校中,学生、老师、课程、班级、教室、计算机、电视机、空调等都是对象。算机、电视机、空调等都是对象。n 对象可以是人,可以是物,可以是具体的事物,也对象可以是人,可以是物,可以是具体的事物,也可以是抽象的概念。可以是抽象的概念。n我们周围所发生的一切,无非是对象相互作用的结我们周围所发生的一切,无非是对象相互作用的结果。果。客观世界中对象的属性客观世界中对象的属性n客观世界中对象:客观世界中对象:n状态数据)状态数

5、据) 静态属性静态属性n行为功能)行为功能) 动态属性动态属性n对象既含数据又含功能,因此具有自身处理数据的对象既含数据又含功能,因此具有自身处理数据的能力能力 能动的主体。能动的主体。n对象是一种看问题的观点,是对现实世界各种元素对象是一种看问题的观点,是对现实世界各种元素的一种抽象。的一种抽象。n对象被认为是迄今为止最接近真实事物的数据抽象对象被认为是迄今为止最接近真实事物的数据抽象。面向对象语言面向对象语言n面向对象语言中的解空间对象比较好地模拟了现实面向对象语言中的解空间对象比较好地模拟了现实世界中的对象。世界中的对象。n将对象定义为数据及可以施加在这些数据上的操作将对象定义为数据及可

6、以施加在这些数据上的操作所构成的统一体。所构成的统一体。n该对象与传统的数据有本质的区别,该对象与传统的数据有本质的区别,n 传统数据被动地等待外界对它的操作。传统数据被动地等待外界对它的操作。n 对象进行处理的主体。对象进行处理的主体。n可以通过向对象发可以通过向对象发“消息消息来请求对象主动地执行来请求对象主动地执行它的某些操作,处理它的内部数据,完成对象所具它的某些操作,处理它的内部数据,完成对象所具有的某项功能。有的某项功能。对象对象nint x ; 变量变量xnInteger x ; 对象对象xn int compareTo(Integer anotherInteger) n dou

7、ble doubleValue() n float floatValue() n int intValue() n long longValue() n short shortValue() n String toString() x.toString()对象x所具有的功能面向过程面向机器面向过程面向机器n在面向过程的程序设计中,核心是:在面向过程的程序设计中,核心是:nn 数据结构是利用计算机的离散逻辑来量化表达需要数据结构是利用计算机的离散逻辑来量化表达需要处理的数据对象;处理的数据对象;n 而算法则是研究如何快捷、高效地组织解决问题的而算法则是研究如何快捷、高效地组织解决问题的具体过程。

8、具体过程。n面向过程本质上是面向机器,而不是面向问题。面向过程本质上是面向机器,而不是面向问题。算法数据结构算法数据结构面向对象程序设计面向对象程序设计n面向对象的程序设计的编程思路面向对象的程序设计的编程思路n不是把程序看作是工作在数据上的一系列过程或函不是把程序看作是工作在数据上的一系列过程或函数的集合,而是把程序看作是相互协作又彼此独立数的集合,而是把程序看作是相互协作又彼此独立的对象的集合。的对象的集合。n每个对象就像一个微型程序,有自己的数据、操作每个对象就像一个微型程序,有自己的数据、操作和功能。和功能。n在许多系统中,解空间中的对象可以直接模拟我们在许多系统中,解空间中的对象可以

9、直接模拟我们实际接触的对象。实际接触的对象。面向对象技术意义面向对象技术意义n减少人脑和电脑之间的隔阂减少人脑和电脑之间的隔阂n长期以来,人与计算机之间仍存在着较大的隔阂:长期以来,人与计算机之间仍存在着较大的隔阂:n 人认识问题时的认识空间和计算机处理问题时的方人认识问题时的认识空间和计算机处理问题时的方法空间的不一致;法空间的不一致;n 而面向对象技术有助于减小这一隔阂、并使这两个而面向对象技术有助于减小这一隔阂、并使这两个空间尽量趋于一致。空间尽量趋于一致。n软件复用软件复用n类库的使用可重用的标准化的模块)类库的使用可重用的标准化的模块)n类的继承类的继承n面向对象技术应用的普遍性面向

10、对象技术应用的普遍性面向对象技术面向对象技术-人人受益人人受益nfor managern更迅速和更经济地开发和维护软件系统。更迅速和更经济地开发和维护软件系统。nfor analysts and designersn模块化的过程将变的简单,并能获得一个清晰的、模块化的过程将变的简单,并能获得一个清晰的、易于管理的设计方案。易于管理的设计方案。 nFor programmersn清晰的对象模型,丰富的面向对象开发工具及类库清晰的对象模型,丰富的面向对象开发工具及类库使得编程变为一件饶有兴趣的工作。程序员明显感使得编程变为一件饶有兴趣的工作。程序员明显感到编程效率的提高。到编程效率的提高。类与对象

11、的基本概念类与对象的基本概念对象特征对象特征n 现实世界的对象:现实世界的对象:n有自己的状态,如一台空调有自己编号、摆放位置有自己的状态,如一台空调有自己编号、摆放位置、颜色、尺寸、重量、工作状态、颜色、尺寸、重量、工作状态 n有自己的行为功能),如空调的开机、关机、制有自己的行为功能),如空调的开机、关机、制冷、制热、摆风冷、制热、摆风 n机器世界的的对象:机器世界的的对象:n 对象的状态用属性来维护变量)对象的状态用属性来维护变量)n 对象的行为用方法来实现代码)对象的行为用方法来实现代码)对象与类对象与类n相关对象的集合称为相关对象的集合称为 类类Class)n类是对象的抽象及描述,它

12、是具有统一属性和方法类是对象的抽象及描述,它是具有统一属性和方法的多个对象的统一描述体,是用来定义一组对象共的多个对象的统一描述体,是用来定义一组对象共有属性和方法的模板。有属性和方法的模板。n类是用来创建对象实例的样板,它包含所创建对象类是用来创建对象实例的样板,它包含所创建对象的状态描述和方法的定义。类是一个型,而对象则的状态描述和方法的定义。类是一个型,而对象则是这个型的一个实例。是这个型的一个实例。n类是静态概念,而对象则是一个动态概念,因为只类是静态概念,而对象则是一个动态概念,因为只有在运行时才给对象分配空间,对象才真正存在。有在运行时才给对象分配空间,对象才真正存在。对象与类对象

13、与类 计算机世界 实体 对象 类 创 建 现实世界 概念世界 抽象类 抽象 定义类 对应 对象与类对象与类 计算机世界 徐军 徐军对象)学生类)创 建 现实世界 概念世界 学生 抽象 定义类 对应 封装封装n 封装是一种组织软件的方法。封装是一种组织软件的方法。n基本思想:把客观世界中联系紧密的元素及相关操基本思想:把客观世界中联系紧密的元素及相关操作组织在一起,使其相互关系隐藏在内部,而对外作组织在一起,使其相互关系隐藏在内部,而对外仅仅表现为与其他封装体间的接口。从而构造出具仅仅表现为与其他封装体间的接口。从而构造出具有独立含义的软件实现。有独立含义的软件实现。n封装并不是一个新的概念,但

14、在面向对象的程序设封装并不是一个新的概念,但在面向对象的程序设计中提出了一种全新的封装方法计中提出了一种全新的封装方法类与对象类与对象封装封装n类的接口与实现类的接口与实现n如果类的属性或方法被定义为如果类的属性或方法被定义为public ,它就是接口的一部,它就是接口的一部分,其他类可以直接访问它。分,其他类可以直接访问它。n如果类的属性或方法被定义为如果类的属性或方法被定义为private,它就是实现的一部,它就是实现的一部分。只有类自己的方法可以访问它。分。只有类自己的方法可以访问它。n对象要注意保护自己的数据私有属性,公有方法)。对象对象要注意保护自己的数据私有属性,公有方法)。对象通

15、过它们的方法管理,实现由编程人员控制。通过它们的方法管理,实现由编程人员控制。n通过接口与对象发生作用,内部实现不影响接口汽车,内通过接口与对象发生作用,内部实现不影响接口汽车,内部变化不影响驾驶程序一部分变化不会影响其他部分。部变化不影响驾驶程序一部分变化不会影响其他部分。继承继承n“ 类类具有继承的功能。具有继承的功能。nB类继承了类继承了A类,就是继承了类,就是继承了A类公共的属性与方法类公共的属性与方法。(称。(称A类为父类,类为父类,B类为子类)类为子类)n继承类的复用继承类的复用n在一般情况下,要定义一个新类,只需继承一个父在一般情况下,要定义一个新类,只需继承一个父类,再描述一下

16、它与父类的不同之处就行了。类,再描述一下它与父类的不同之处就行了。 n继承性使得用户可以在原有类的基础上定义自己的继承性使得用户可以在原有类的基础上定义自己的新类。新类。案例定单系统案例定单系统n公司需求:公司需求:n成立新的公司时尚服装;成立新的公司时尚服装;n每月发布商品编目,并寄给定户;每月发布商品编目,并寄给定户;n客户可以发客户可以发e-mail 或或FAX定货寄定单);定货寄定单);n对于客户的定货要检查存货清单,如缺货,得暂时对于客户的定货要检查存货清单,如缺货,得暂时搁置定单,直到供货商送到货;搁置定单,直到供货商送到货;n公司检查支票和信用卡;公司检查支票和信用卡;n公司将定

17、单下发给仓库,给客户发货;公司将定单下发给仓库,给客户发货;n注意:注意:n同种商品每月价格不一。如果订户使用的是六个月同种商品每月价格不一。如果订户使用的是六个月之前的编目,价格采用当前编目价格;之前的编目,价格采用当前编目价格;n公司接受所有主要的信用卡;公司接受所有主要的信用卡;分析对象分析对象n系统是由相互作用的对象组成。任何系统需要它的系统是由相互作用的对象组成。任何系统需要它的对象做它的工作。对象做它的工作。n案例对象:定单,服装,客户案例对象:定单,服装,客户n在一个问题域中识别对象不是科学而是艺术。对象在一个问题域中识别对象不是科学而是艺术。对象取决于人的观点模块化,应用)取决于人的观点模块化,应用)n从从“名词名词开始确定系统中的对象。对象可以是:开始确定系统中的对象。对象可以是:n简单的和复杂的:衬衣,银行简单的和复杂的:衬衣,银行n实际的和概念的:银行出纳员,银行帐号实际的和概念的:银行出纳员,银行帐号对象的属性和方法对象的属性和方法n确定对象的属性和方法确定对象的属性和方法n对象属性:对象属性:n 客户客户号,客户名,地址客户客户

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论