- 1、本文档共161页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
面向对象法学引论
第9章 面向对象方法学引论;传统的软件工程方法学曾经给软件产业带来巨大进步,部分地缓解了软件危机,但是,把这种方法学应用于大型软件产品的开发时,似乎很少取得成功。
面向对象方法学的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程。
;概括地说,面向对象方法具有下述4个要点:
(1) 认为客观世界是由各种对象组成的,任何事物都是对象,复杂的对象可以由比较简单的对象以某种方式组合而成。按照这种观点,可以认为整个世界就是一个最复杂的对象。因此,面向对象的软件系统是由对象组成的,软件中的任何元素都是对象,复杂的软件对象由比较简单的对象组合而成。
由此可见,面向对象方法用对象分解取代了传统方法的功能分解。;(2) 把所有对象都划分成各种对象类(简称为类,class),每个对象类都定义了一组数据和一组方法。数据用于表示对象的静态属性,是对象的状态信息。因此,每当建立该对象类的一个新实例时,就按照类中对数据的定义为这个新对象生成一组专用的数据,以便描述该对象独特的属性值。
类中定义的方法,是允许施加于该类对象上的操作,是该类所有对象共享的,并不需要为每个对象都复制操作的代码。;(3) 按照子类(或称为派生类)与父类(或称为基类)的关系,把若干个对象类组成一个层次结构的系统(也称为类等级)。在这种层次结构中,通常下层的派生类具有和上层的基类相同的特性(包括数据和方法),这种现象称为继承(inheritance)。但是,如果在派生类中对某些特性又做了重新描述,则在派生类中的这些特性将以新描述为准,也就是说,低层的特性将屏蔽高层的同名特性。;(4) 对象彼此之间仅能通过传递消息互相联系。对象与传统的数据有本质区别,它不是被动地等待外界对它施加操作,相反,它是进行处理的主体,必须发消息请求它执行它的某个操作,处理它的私有数据,而不能从外界直接对它的私有数据进行操作。也就是说,一切局部于该对象的私有信息,都被封装在该对象类的定义中,就好像装在一个不透明的黑盒子中一样,在外界是看不见的,更不能直接使用,这就是“封装性”。;面向对象的方法学可以用下列方程来概括:
OO=objects+classes+inheritance+communication with messages
也就是说,面向对象就是既使用对象又使用类和继承等机制,而且对象之间仅能通过传递消息实现彼此通信。
;如果仅使用对象和消息,则这种方法可以称为基于对象的(object-based)方法,而不能称为面向对象的方法;
如果进一步要求把所有对象都划分为类,则这种方法可称为基于类的(class-based)方法,但仍然不是面向对象的方法;
只有同时使用对象、类、继承和消息的方法,才是真正面向对象的方法。;1. 与人类习惯的思维方法一致
传统的程序设计技术是面向过程的设计方法,这种方法以算法为核心,把数据和过程作为相互独立的部分,数据代表问题空间中的客体,程序代码则用于处理这些数据。;(1)把数据和代码作为分离的实体,反映了计算机的观点,因为在计算机内部数据和程序是分开存放的。但是,这样做的时候总存在使用错误的数据调用正确的程序模块,或使用正确的数据调用错误的程序模块的危险。;(2)传统的程序设计技术忽略了数据和操作之间的内在联系。实际上,用计算机解决的问题都是现实世界中的问题,这些问题无非由一些相互间存在一定联系的事物所组成。每个具体的事物都具有行为和属性两方面的特征。因此,把描述事物静态属性的数据结构和表示事物动态行为的操作放在一起构成一个整体,才能完整、自然地表示客观世界中的实体。;(3)面向对象的软件技术以对象(object)为核心,用这种技术开发出的软件系统由对象组成。对象是对现实世界实体的正确抽象,它是由描述内部状态表示静态属性的数据,以及可以对这些数据施加的操作(表示对象的动态行为),封装在一起所构成的统一体。对象之间通过传递消息互相联系,以模拟现实世界中不同事物彼此之间的联系。;2. 稳定性好
传统的软件开发方法以算法为核心,开发过程基于功能分析和功能分解。用传统方法所建立起来的软件系统的结构紧密依赖于系统所要完成的功能,当功能需求发生变化时将引起软件结构的整体修改。事实上,用户需求变化大部分是针对功能的,因此,这样的软件系统是不稳定的。
面向对象方法基于构造问题领域的对象模型,以对象为中心构造软件系统。它的基本作法是用对象模拟问题领域中的实体,由于现实世界中的实体是相对稳定的,因此,以对象为中心构造的软件系统也是比较稳定的。
;3. 可重用性好
用已有的零部件装配新的产品,是典型的重用技术,例如,可以用已有的预制件建筑一幢结构和外形都不同于从前的新大楼。重用是提高生产率的最主要的方法。
由于可以像使用集成电
您可能关注的文档
- 计算机维诊断思路.ppt
- 计算机网统考辅导.ppt
- 认真学习动合同法.ppt
- 认知心理(详解).ppt
- 认证考试旅游电子商务概论教改程配套教材旅游电子商务杜文才主编.ppt
- 计算机网安全之PKI.ppt
- 计算机辅助工程-CAE.ppt
- 计算机辅助设计Photosho——练习.ppt
- 认识汽车底盘维修具和设备.ppt
- 让孩子养良好习惯.ppt
- 国际贸易学科教学与虚拟现实技术的整合实践教学研究课题报告.docx
- 高中体育课程中运动生理监测设备的应用与效果评估教学研究课题报告[001].docx
- 小学数学几何图形与空间想象的教学实践教学研究课题报告.docx
- 基于大数据的高中生职业生涯规划与指导课程创新研究教学研究课题报告.docx
- 高中生物分子生物学教学中概念图绘制策略研究教学研究课题报告.docx
- 高中政治课堂中经典诵读活动的思想政治教育研究教学研究课题报告.docx
- 小学地理知识教学研究教学研究课题报告.docx
- 初中物理实验教学中的创新实践与评价基于STEM教育的探索与思考教学研究课题报告.docx
- 基于词块理论的高中英语词汇教学实际操作研究教学研究课题报告.docx
- 初中信息技术教学中的信息检索与利用技巧教学研究课题报告.docx
文档评论(0)