版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第九章 面向对象程序方法学习要求: 掌握面向对象程序设计语言的发展史。 了解主要的一些程序设计范型。 熟练掌握面向对象程序设计语言的三大特性:封装、继承和多态。 熟练掌握面面向对象程序设计语言的基本概念9.1 概述 9.1.1 面向对象的由来9.1.2 面向对象方法的发展9.2 基本概念-对象 抽象 对象是无处不在的 对象是数据以及可以对这些数据施加的操作结合在一起所构成的独立实体的总称。 对象在软件系统开发的各个阶段的不同表现形式 分析阶段:对象是一种粗略的描述设计阶段:对象的数据和操作进一步得到细化,对象的特性得到明确的描述编程阶段:通过定义类,并将其实例化从而得到具体的对象运行阶段:对象
2、成为内存中可标识的区域,存放数据和操作代码 一个对象类的定义与对象实例化 /-/例9.1 演示:对象类的定义与对象实例化/-/定义一个电话类class Phone private: char owner10; /电话主人姓名 char address50; /电话所在地 char phoneNumber10; /电话号码一个对象类的定义与对象实例化public: Phone(char *owner, char * address, char * phoneNum); /构造函数 char * getPhoneNumber(); /取电话号码 char * getOwner(); /取电话主人姓
3、名 char * getAddress(); /取电话所在地 char *changeOwner(char *); /电话过户 char *dial(char *); /拨号;/对象实例化Phone myPhone(“张三”,”河南郑州”,”1234567”);9.2 基本概念-消息 1.软件系统中的对象之间存在依存关系:对象通过接收消息,对外提供服务发挥能动性对象通过发送消息,请求其他对象为它服务2. 消息:消息是对象之间相互请求和相互协作的途径,要求某个对象执行类中所定义的某个操作的规格说明。 3. 消息的几个关键要素:消息的发送者、消息的接收者、消息名、参数及应答。注:消息是对象之间通信
4、的唯一途径老板对下属说: “明天早上八点以前把有关饮料的市场调查报告放到我的办公桌上”。消息的发送者消息的接收者参数1参数2参数3注意在此消息名是: 给我市场调查报告消息的几个特性 同一对象可以接收不同形式的消息,产生不同的响应 相同形式的消息可以送给不同对象,所做出的响应可截然不同 消息的发送可以不考虑具体的接收者,对象可以响应消息,也可以不理会公有消息和私有消息 私有消息:由对象自己向本身发送的消息,这些消息不对外开放,外界不必了解它 公有消息:由外界直接向对象发送的消息 在程序设计语言中的消息在具体的程序中,消息的表现形式为对象在其操作过程中对另一个对象的服务程序的调用,也就是函数(或过
5、程)调用。例:给电话对象发送一个消息char * ifdial;ifdial = myPhone.dial(“82904456”); 3. 不是所有的函数调用都是消息 9.2 基本概念-类 1.类是人类抽象思维的产物。2.对一组具有相同数据和相同操作的对象的描述。3.类是对一组对象的抽象概括,而每个对象都是某一个类的一个具体的实例。 对象本身不包括实现操作的代码,这些代码在类中定义9.2 基本概念-类 1.类是用唯一的类名来标识的,类的定义包括数据和操作两部分。2.类中的数据和操作由于访问权限的不同,又分为公有的、私有的和受保护的。 3.类与对象的关系 9.2 基本概念-实例 1.由某个特定类
6、所描述的一个对象 2 . 同一个类的不同实例之间有以下特点:相同的操作集合相同的属性集合不同的对象名 对象和类的实例是同义词 9.2 基本概念-方法 对象所能执行的操作 在C+中称为成员函数 类中定义的函数,描述对象执行操作的算法,即响应消息的方法 9.3 面向对象的程序设计方法 面向对象程序设计是软件系统设计与实现的新方法 增加软件的可扩充性和可重用性 改善并提高程序员的生产能力 控制维护软件的复杂性和软件维护的开销 9.3.1 程序设计范型 范型:指一种通用的一般化的关于现实世界的模型。它体现了一类语言的主要特点,这些特点能用来支持应用域所希望的设计风格。 面向对象程序设计范型 :从程序这
7、一方面将,它是一个类的集合和各类之间的继承关系联系起来的结构,再加上一个主程序,在主程序中定义各对象并规定他们之间传递消息的规律。从程序执行这一方面讲,他归结为各对象和他们之间以消息传递的方式进行着的通讯。OOP的主要特征:各对象之间的消息传递和各类之间的继承。 9.3.2 结构化程序设计设计思想:自顶向下、逐步求精。类似我们一般的思维方式。 主模块子模块1子模块2子模块3子模块3-m子模块n子模块3-1子模块3-2子模块3-3结构化程序设计的优缺点优点:自顶向下,逐步求精 模块化 复用缺点 面向功能,易于变化:功能变化频繁,用户需求不断改变 把数据和过程分离为相互独立的实体 复杂系统的行为难
8、以用顶层功能描述 本质上不利于复用 一般的面向结构的程序设计框架main() fun1() fun2() func3() 9.3.4 面向对象程序设计 吸取了结构化程序设计的一切优点 考虑了现实世界与面向对象解空间的映射关系 形成一个新的数据类型“类”类型 目前的面向对象程序设计语言都提供了大量的类 例如:链表是一种常用的数据类型,利用它可以实现数据的存储。我们可以把链表这种存储结构以及对链表的插入和删除等操作封装成一个类,这样使用链表时,可以先构造出一个链表对象,对它的操作,就转化为调用其方法实现。面向对象程序设计的目标和优点目标 :将现实世界的问题取解尽可能简化 优点 自然、直观:考虑了现
9、实世界与面向对象解空间的映射关系 将数据和操作放在了一起,作为一个相互依存、不可分割的整体来处理,采用数据抽象和信息隐藏技术 将对象以及对对象的操作抽象成一种新的数据类型-类 为继承和复用提供了有效的手段 使用多态性增强了操作的透明性、可理解性和可维护性 肩头 箭头表示消息 整个应用程序对象1对象2对象3对象4对象5面向对象应用系统9.4 OOPL的三个重要特性 封装性继承性多态性 9.4.1 封装性 9.4.2 继承性 9.4.3 多态性 9.5 抽象 *9.6 面向对象的分析与设计 面向对象开发方法的生命周期面向对象分析 面向对象设计 9.6.1 面向对象开发方法的生命周期 面向对象软件开发方法的生命周期:分析阶段 :对问题领域中存在的事物的分析,进行抽象。设计阶段 :结合具体的开发环境,进行详细设计。实现阶段 :进行具体的编程,以及代码测试。 9.6.2 面向对象分析 面向对象分析是软件开发过程中的问题定义阶段 面向对象分析的结论 面向对象分析包括两个方面 :问题分析 应用分析 面向对象分析的过程就是建立OOA模型的过程 9.6.3 面向对象设计 1. 设计是对分析结果的进一步加工 2. 设
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年生物天然气提纯工艺及并入管网技术规范
- 2026年动力电池回收国际标准碎片化与中国方案输出路径
- 2026年广州市白云区初三教学质量监测(一)生物试题理试卷含解析
- 2026年科学用药施肥增效项目生物农药补助申报表模板
- 2026年四川省泸州泸县重点达标名校中考5月模拟考试生物试题试卷含解析
- 河南省鹤壁市、淇县重点达标名校2025-2026学年初三下学期统一考试化学试题理试题含解析
- 福建省晋江市潘径中学2026年中考生物试题全真模拟演练含解析
- 山东省滕州市洪绪中学2025-2026学年初三4月摸底考试化学试题试卷含解析
- 广东惠城区重点达标名校2025-2026学年初三下学期返校联考生物试题含解析
- 2026年智算中心建设周期投资回收期与经济产出测算模型
- DB46∕T 626-2024 黎家宴服务规范
- 51testing:2024年软件测试行业现状调查报告
- 2025年中国带状疱疹防治指南
- 灌排渠道设计规范
- 扬州大学广陵学院《遗传学》2025-2026学年期末试卷(A卷)含答案
- 我心中的老师班会课件
- 低空经济试题及答案
- 养老院安全生产教育培训内容
- 设备设施停用管理制度
- 山东高考英语语法单选题100道及答案
- 职业道德与法治知识点总结中职高教版
评论
0/150
提交评论