面向对象的概念与模型汇总课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《面向对象的概念与模型汇总课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 概念 模型 汇总 课件
- 资源描述:
-
1、第6章 面向对象的概念与模型思考题v软件开发中为什么要使用面向对象方法?v面向对象分析方法与结构化分析方法有哪些相似之处?有何区别?v面向对象方法是对过去的一个完全突破,还是“换汤不换药”传统方法学的缺点v存在的问题:生产率提高的幅度远不能满足需要;软件重用程度很低;软件仍然很难维护;软件往往不能真正满足用户需要。v出现上述问题的原因很多,最根本的是瀑布型开发模型和结构化技术的缺点。传统方法学的缺点v瀑布型模型的缺点:僵化 瀑布模型要求:生命周期各阶段间遵守严格的顺序。实际情况:软件开发往往在反复实践中完成。瀑布模型要求:预先定义并“冻结”软件需求。实际情况:某些系统的需求的一个逐渐明确的过程
2、,且预先定义的需求到软件完成时可能已经过时。传统方法学的缺点v结构化技术的缺点:本质上是功能分解,以实现功能的过程为中心,而用户的需求变化主要是针对功能的。这就使基于过程的设计不易被理解;且功能变化往往引起结构变化较大,稳定性不好。系统有明确的边界定义,且系统结构依赖于系统边界的定义,这样的系统不易扩充和修改。结构分析技术对处理的分解过程带有任意性,不同的开发人员开发相同的系统时,可能经过分解而得出不同的软件结构。数据与操作分开处理,可能造成软构件对具体应用环境的依赖,可重用性(reusability)较差。解决问题的途径v新的软件开发模型,如快速原型方法、螺旋型方法等;v新的软件开发方法学面
3、向对象方法学。面向对象方法学OOMv特点:尽可能模拟人类习惯的思维方式,即问题域与求解域在结构上尽可能一致。与传统方法相反,OOM以数据或信息为主线,把数据和处理结合构成统一体对象。这时程序不再是一系列工作在数据上的函数集合,而是相互协作又彼此独立的对象的集合。OO方法基于的方法基于的“世界观世界观”:世界是由对象构成的;世界是由对象构成的;对象有其自己的属性和内部运动规律;对象有其自己的属性和内部运动规律;对象之间的相互作用,构成了大千世界的对象之间的相互作用,构成了大千世界的 各式各样的不同系统。各式各样的不同系统。面向对象的基本概念,类:物以类聚是一组具有和的对象的集合。v类定义可以视为
4、一个具有类似特性与共同行为的对象的,可用来产生对象。实例v对象的状态则包含在实例的属性中。UMLUML类图类图Blow:StudentDr.Brown:Professor例例:class Post_office private:loc_type location;emp_type employee;public:void send(req_type request,money_type payment);void sell(int goods,money_type payment);main()Post_office My_PO;req_type My_request;money_type M
5、y_payment;My_PO.Send(My_request,My_payment);封装是指将对象的状态信息(属性)和行为(方法)捆绑为一个逻辑单元,并尽可能隐藏对象的内部细节。v封装是面向对象的一个重要原则,它有两个涵义:第一个是把对象的全部属性和全部操作结合在一起,形成一个不可分割的独立对象。第二个是“信息隐藏”,即尽可能隐藏对象的内部细节,对外形成一个边界,只保留有限的对外接口使之与外部发生联系。v封装可以提高事物的独立性,而且还可以有效地避免“交叉感染”和减少“波动效应”。继承:相似性与多样性v继承(inheritance):类可分层,下层子类与上层父类有相同特征,称为继承。是的技
6、术。v新类的定义可以是和的组合。新类复用既存的定义,而。应地可当做派生类来引用。v使用继承设计一个新类,可以视为描述一个新的对象集,它是既存类所描述对象集的子集合。v这个新的子集合可以认为是。类是类的特殊化。是限制为四条边的多边形。我们还可以进一步地把类特殊化为。v类的操作可以等同于类的操作,而类的操作又与类的操作相同。v新类的操作还可以被看做是既存类操作的一个。例如,从一个既存的类派生的类可能不仅是类子集合定义的特殊化,而且还可能在新类的操作中引入新的能力。类的继承层次类的继承层次v在类的继承层次中,Quadrilateral的实际参数可以替换Polygon的形式参数。v类Quadrilat
7、eral的操作与类Polygon的操作是相容的vQuadrilateral的操作可响应Polygon操作的所有消息。继承的好处v继承使得导出类变得非常简洁明了,导出类中只包含那些使它们与父类不同的最本质的特性。v通过继承,可以重复使用和扩展那些经过测试的没有修改过的代码。v最好的方法是从现存的类中导出新的子类。v分级分类是人类组织和利用信息的技能。按照这种方法组织规划软件,使得结构简单,易于维护和扩展。v一旦建立了类的层次结构,并且编写了一个应用程序的代码,改变非叶节点的类将对整个层次结构产生“波动影响”。v所以,一旦一个应用程序的非叶节点类的代码编写完成后,就尽量避免向其中增加新的特征。导出
8、类的规则v通过添加特性来扩展基本类v研究从父类继承的操作v子类执行父类的操作的特殊化处理是通过一种称为替换(overriding)的方法实现的。导出类的规则 cont.v不能改变特征的语义(目的和含义)v不能替代属性 v不能删除特性 多重继承 v在一个类层次结构种任何给定的类都允许由两个或多个类作为直接父类,称为多重继承。Person Student Professor Professor Student消息:合作之道v消息是一个对象与另一个对象的通信单元,是要求某个对象执行类中定义的某个操作的规格说明。消息包括提供服务的对象标识、服务标识、输入信息、返回信息。(可能是空的),并。vMessa
9、ge:=object_ID.method_ID(parameter(s);例例:class Post_office private:loc_type location;emp_type employee;public:void send(req_type request,money_type payment);void sell(int goods,money_type payment);main()Post_office My_PO;req_type My_request;money_type My_payment;My_PO.Send(My_request,My_payment);多态性
展开阅读全文