- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
24面向对象的程序设计方法.
2.4 面向对象的程序开发方法
2.4.1 面向对象的基本概念
思维方式决定解决问题的方式,传统软件开发采用自顶向下的思想指导程序设计,即将目标划分为若干子目标,子目标再进一步划分下去,直到目标能被编程实现为止。面向对象技术给软件设计领域带来极大的变化,它利用软件对象来进行程序开发,所谓对象是包含数据和对数据操作的代码实体,或者说是在传统的数据结构中加入一些被称为成员函数的过程,因而赋予对象以动作。而在程序设计中,对象具有与现实世界的某种对应关系,我们正是利用这种关系对问题进行分解。
从程序语言角度来看,在一个对象中代码和(或)数据可以是这个对象私有的,不能被对象外的部分直接访问。因而对象提供了一种高级保护以防止程序被无关部分错误修改或错误地使用了对象的私有部分。当从对象外部试图直接对受保护的内部数据进行修改时,将被程序拒绝,只有通过对象所提供的对外服务函数材能够对其内部数据进行必要的加工,从而保证了数据加工的合法性。从这一意义上讲,把这种代码和数据的联系称为“封装”。换句话说,封装是将对象封闭保护起来,是将内部细节隐蔽起来的能力。
在强调软件组件的重用方面,面向对象的技术与标准的工业设计规律有更多相似之处。在面向对象语言中,类是创建对象的关键,事实上类描述了一族对象的公共特征和操作,而对象则是具体实现的类。例如小汽车是一个基本概念,它具有颜色、几何尺寸、动力特性的特征。那我们可以定义一个称为“car”的类,具有颜色、几何尺寸、动力特征等参数,以及描述汽车在外界条件下运动状态的成员函数。一辆具体的小汽车则是一个对象,在这个对象中有关参数均有具体数值,并可以通过输入说明变量(外界条件参数)获取该车具体运动状态。
C++和Smalltalk是广泛被接受的面向对象的程序设计语言,在欧洲Eiffel拥有一批追随者,而Ada 9X通过附加多态性和继承性,将把Ada语言全面引入面向对象的世界。
面向对象技术给软件发展带来如下益处:
可重用性。从一开始对象的产生就是为了重复利用,完成的对象将在今后的程序开发中被部分或全部地重复利用。
可靠性。由于面向对象的应用程序包含了通过测试的标准部分,因此更加可靠。由于大量代码来源于成熟可靠的类库,因而新开发程序的新增代码明显减少,这是程序可靠性提高的一个重要原因。
连续性。具有面向对象特点的C++与C语言有很大的兼容性,C程序员可以比较容易地过渡到C++语言开发工作。
面向对象语言具有如下基本特征:
访问控制。对象必须能够对其内部的某些元素进行保护,是它们只能被内部使用,而不受外部干扰。反过来,对象又必须同其它外部元素进行联系,以便对对象进行操作。在C++中,类有私有的(private)、保护的(protected)和公有的(public)三种访问机制。
继承性。通过对已有对象进行增加或部分修改的方法建立新的对象,对已有对象可以增加数据和过程,也可以对其中某些过程进行从新定义。最初的类被称为基类,从基类扩展出来的类称为派生类。从已有类派生出新类是为了获得更强的针对性。
多态性。正象生态系统一样,继承构成了类族。通常这些类族中的类具有同名的成员函数,例如OD分布类族,具有一个通用基类,两个派生类:增长系数OD分布类和重力模型OD分布类,这几个类都有同名的Exec成员函数。多态性意味着存在多种形式,能使人们在程序中激活任何属于OD分布类族的类的Exec成员函数,甚至在编译可以不必具体知道对象是属于增长系数OD类还是重力模型OD分布类。
面向对象体系结构技术有助于创建行业性软件开发机构。例如交通规划尽管具有差别,但各城市所需要的软件基本上是相同的,这就为软件开发机构提供了一种制作面向交通规划的软件框架(注意这里讲的是软件框架而不是通用性软件)的机会。这种框架一旦开发成功,就可以多次反复利用。
面向对象技术特别适合于将某一领域内的软件资源整理成体系化,因为它有很好的表现能力,能够容易抓住特定功能领域的本质。
2.4.2面向对象的程序设计
为有效使用面向对象的程序方法,首先需要解决程序的结构设计问题。在程序设计过程中最重要的抽象,也就是说,从现实世界中抽象出合理的对象结构。在面向对象思想中,抽象决定了对象的对外形象、内部结构以及处理对象的外部接口,其关键是处理对象的可见外部特征。封装是与抽象紧密联系的概念,它需要两个基本前提:首先,对象必须能够表现一个完备的概念,例如可以将一条道路的纵断面设计作为一个对象,它与外部的联系限于纵断面地面线、纵断面设计参数。当这些外部条件给定之后,对象可以独立计算任意桩号的设计高程、地面高程、设计高差、填挖面积等,也可以根据给定的比例和初始坐标计算设计线和地面线的图形坐标。第二,对象的私有性,例如上述示例中,对象的内部数据结构在外部是不可见的,其他程序员并不需要了解这种数据结构就可
您可能关注的文档
- 02艾森克情绪稳定性测验(题目-答卷).doc
- 0817化学工程与技术学科博士硕士学位基本要求..doc
- 08级毕业论文任务书-20116.doc
- 08史前考古笔记.doc
- 1,4-二氨基-2,3-二氰基蒽醌投资项目可研报告相关信息.doc
- 1,3,4-噻二唑类化合物的合成.doc
- 100511实验报告书格式.doc
- 100例容易写错的字.docx
- 10kV庆阳线线损分析..doc
- 10kv配电线路常见故障原因分析及防范措施毕业设..doc
- 六年级数学下册教学课件《解比例》.pptx
- 8.21.5 鸟类的生殖与发育(课件)八年级生物下册课件(苏教版).pptx
- 钠离子电池项目智能制造方案(范文参考).docx
- 2023-2024学年吉林省吉林市舒兰市七年级(上)期末语文试卷.docx
- 2024年吉林省吉林市丰满区亚桥实验学校中考数学三模试卷.docx
- 2023-2024学年吉林省辽源市东辽县七年级(上)期末英语试卷.docx
- 2023-2024学年吉林四平九年级数学第一学期期末水平检测试卷.docx
- 2023-2024学年吉林市蛟河市三校联考九年级(上)期末英语试卷.docx
- 2023-2024学年吉林松原九年级英语上册考场实战试卷.docx
- 电解液新材料项目智能制造方案.docx
最近下载
- 临床社会工作:优势视角模式形考任务三.docx VIP
- 《人类学概论》马工程 电子课件 第十章 人类学的应用.pptx
- 机车运用管理讲解.ppt
- 测度论讲义习题答案--严加安.pdf VIP
- COMMAND MODERN OPERATION 用户手册中文版.pdf VIP
- Biostar映泰B550GTQ 5.0 AB55A-M4T_(EN+KR+TC)_230620说明书用户手册.pdf
- 2023年喀什大学公共课《马克思主义基本原理概论》期末试卷A(有答案).docx VIP
- 天津中医药大学2022-2023学年第1学期《生物化学》期末试卷(B卷)附参考答案.docx
- Biostar映泰B550MH 6.1 AA52A-M4S & AB55A-M4S_CN (Ver6.1)_230619说明书用户手册.pdf
- 2023年喀什大学公共课《马克思主义基本原理概论》期末试卷B(有答案).docx VIP
文档评论(0)