- 1、本文档共125页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章 面向对象分析与设计方法 ?面向对象技术的基本观点如下: (1)客观世界是由对象组成的。 (2)具有相同的数据和相同的操作的对象可以归并为一个类,对象是对象类的一个实例。 (3)类可以派生出子类,子类继承父类的全部特性(数据和操作),又可以有自己的新特性。 (4)对象之间通过消息传递相互联系。类具有封装性。 ?软件工程学家Codd和Yourdon认为: 面向对象=对象+类+继承+通信(消息传递) ?如果一个计算机软件系统采用这些概念来建立模型并予以实现,它就是面向对象的。 对象、实体与类 1.对象(object) 现实世界中某个具体的物理实体或概念在计算机逻辑中的映射和体现。 对象具有的含义: 在现实世界中: 是客观世界中的一个实体 在面向对象程序中: 表达成计算机可理解、可操纵、具有一 定属性和行为的对象 在计算机世界中: 是一个可标识的存储区域 属性(attribute)通常是一些数据,有时它也可以是另一个对象。每个对象都有它自己的属性值,表示该对象的状态。对象中的属性只能通过该对象所提供的操作来存取或修改。 操作(operation)(也称行为、方法或服务)规定了对象的行为,表示对象所能提供的服务。 2.类(class) 具有共同属性和行为的对象的抽象 类与对象的关系 类是对象的抽象 对象是类的实例 一个类中的每个对象都是这个类的一个实例(instance)。 类是创建对象的模板,从同一个类实例化的每个对象都具有相同的结构和行为。 例子:运动会 软件系统 对象包括如王某、赵某、2号篮球和5号篮球场等等具体的人、运动器械和场地; 类包括裁判员、运动员、标枪和场地等等不同类别的人或运动器械或场地的名称。 运动会是由如王某、赵某、2号篮球和5号篮球场等所有参加运动会的具体的人、运动器械和场地组成的,他们的交互活动才能使得运动会运行起来,对应于软件系统是对象的集合;篮球裁判员、运动员、篮球和篮球场等等只是某一类对象的统称(抽象),只是一种人脑认识对象的概念和名称而已,并不能让系统运行起来,但是往往是通过类的形式給对象赋予职责,如是篮球裁判员就有要看是否犯规、给出得几分的手势等职责,对应于设计和编程时的类定义。 要真正开始某个项目的比赛时,如篮球比赛,就要具体指派某类中的某个人、运动器械和场地去完成一定的职责,如指派王某担任篮球裁判员,他自然就有看是否犯规、给出得几分的手势等的职责,同时决定使用2号篮球,在5号篮球场上比赛,加上赵某等若干名具体的篮球运动员,协作完成这一项的比赛,对应于要实现某个软件功能时,要先以类为模板创建对象,每个对象自然就有该类所定义的结构和行为,然后由对象之间通信来完成这一的软件功能。 3.封装 封装是软件开发方法的重要原则,有两个涵义: 把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位(对象)。 尽可能隐蔽对象的内部细节(信息隐蔽)。 4.继承 (inheritance) 继承是父类和子类之间共享数据和方法的机制。 继承具有传递性。 继承包括单继承和多重继承。 继承性作用 使软件系统具有开放性; 更好地进行抽象与分类; 增强代码的重用率。 5.多态性( polymorphism) 不同的对象收到同一消息可产生完全 不同的结果,这一现象叫做多态性。 多态的效果 ? 用户发送一个通用的消息,而实现 的细节则由接收对象自行决定。 多态性的作用 增强了操作的透明性、可理解性和可扩展性。 增强了软件的灵活性和重用性。 6.消息(message) 消息 ? 对象之间相互请求或相互协作的途径,是要求某个对象执行某个功能操作的规格说明。 消息内容 ? 通常包含接收方及请求接收方完成的功能信息。 发送方 ? 发出消息,请求接收方响应。 接收方 ? 收到消息后,经过解释,激活方法,予以响应。 7. 动态绑定(dynamic binding) 动态绑定是指在程序运行时才将消息所请求的操作与实现该操作的方法连接起来。 传统的程序设计语言的过程调用与目标代码的连接(即调用哪个过程)放在程序运行前(即编译时)进行(称为静态绑定)。 而动态绑定则是把这种连接推迟到运行时才进行。 动态绑定是一种在运行时确定被执行代码的技术。 在一般与特殊关系中,子类是父类的一个特例,所以父类对象可以出现的地方,也允许其子类对象出现。因此在运行过程中,当一个对象发送消息请求服务时,要根据接收对象的具体情况将请求的操作与实现的方法进行连接,即动态绑定。 面向
您可能关注的文档
- PI系统介绍(合成).doc
- PLC编程教程 日本三菱FX系列--13可编程控制器的工作原理和编程语言.ppt
- pmp认证200题模拟试题及答案.doc
- PowerBuilder 100 应用基础与实例教程.ppt
- PO請購單維護作業.ppt
- PO输出方式总结打印EDIEMAIL.doc
- ProE教案-课题1认识ProE.doc
- Protel99se教程以及元件中英文对照表.doc
- PS13 中国航油ERP用户手册-预付款支付-杜瑞宁-V10.doc
- Q4 第3章 综合布线系统设计.ppt
- 2023-2024学年广东省深圳市龙岗区高二(上)期末物理试卷(含答案).pdf
- 2023-2024学年贵州省贵阳市普通中学高一(下)期末物理试卷(含答案).pdf
- 21.《大自然的声音》课件(共45张PPT).pptx
- 2023年江西省吉安市吉安县小升初数学试卷(含答案).pdf
- 2024-2025学年广东省清远市九校联考高一(上)期中物理试卷(含答案).pdf
- 广东省珠海市六校联考2024-2025学年高二上学期11月期中考试语文试题.pdf
- 2024-2025学年语文六年级上册第4单元-单元素养测试(含答案).pdf
- 2024-2025学年重庆八中高三(上)月考物理试卷(10月份)(含答案).pdf
- 安徽省安庆市潜山市北片学校联考2024-2025学年七年级上学期期中生物学试题(含答案).pdf
- 贵州省部分校2024-2025学年九年级上学期期中联考数学试题(含答案).pdf
文档评论(0)