清华面向对象程序设计

上传人:痛*** 文档编号:175002355 上传时间:2022-12-18 格式:PPT 页数:34 大小:125.50KB
收藏 版权申诉 举报 下载
清华面向对象程序设计_第1页
第1页 / 共34页
清华面向对象程序设计_第2页
第2页 / 共34页
清华面向对象程序设计_第3页
第3页 / 共34页
资源描述:

《清华面向对象程序设计》由会员分享,可在线阅读,更多相关《清华面向对象程序设计(34页珍藏版)》请在装配图网上搜索。

1、清华面向对象程序设计清华大学出版社编著者 叶乃文 喻国宝清华面向对象程序设计第 1 章面向对象程序设计概述清华面向对象程序设计1.1 结构化程序设计方法 1.1.1 1.1.1 结构化程序设计思想的提出背景结构化程序设计思想的提出背景 回首计算机的发展历程,人们发现计算机软件的发展速回首计算机的发展历程,人们发现计算机软件的发展速度始终滞后于计算机硬件的发展,它已经成为制约计算度始终滞后于计算机硬件的发展,它已经成为制约计算机产业整体发展的瓶颈。究其原因可能有很多方面,但机产业整体发展的瓶颈。究其原因可能有很多方面,但下面两点不容忽视。下面两点不容忽视。l 软件产业的个体化软件产业的个体化l

2、受限于程序设计语言受限于程序设计语言清华面向对象程序设计1.1.2 结构化程序设计方法结构化程序设计方法n自顶向下、逐步求精的开发方法自顶向下、逐步求精的开发方法n 模块化的组织方式模块化的组织方式n 结构化的语句结构结构化的语句结构清华面向对象程序设计自顶向下、逐步求精 将编写程序看成是一个逐步演化的将编写程序看成是一个逐步演化的过程。所谓自顶向下是指将分析问过程。所谓自顶向下是指将分析问题的过程划分成若干个层次,每一题的过程划分成若干个层次,每一个新的层次都是上一个层次的细化,个新的层次都是上一个层次的细化,即步步深入,逐层细分。即步步深入,逐层细分。清华面向对象程序设计模块化 将整个系统

3、分解成若干个模块,每将整个系统分解成若干个模块,每个模块实现特定的功能,最终的系个模块实现特定的功能,最终的系统将由这些模块组装而成。模块之统将由这些模块组装而成。模块之间通过接口传递信息,力求模块具间通过接口传递信息,力求模块具有良好的独立性。有良好的独立性。清华面向对象程序设计语句结构化ABTAB顺序结构顺序结构分支结构分支结构YN清华面向对象程序设计ATYNATYNwhile 循环结构循环结构do 循环结构循环结构清华面向对象程序设计结构化程序设计的特点程序设计数据结构算法程序设计数据结构算法程序内容过程过程调用程序内容过程过程调用清华面向对象程序设计结构化程序设计的基本过程软件开发的基

4、本过程:软件开发的基本过程:n需求分析需求分析n系统设计系统设计n系统实现系统实现n系统测试系统测试n系统维护系统维护当结构化思想贯穿于每个过程时,当结构化思想贯穿于每个过程时,其基本过程:分解和组装其基本过程:分解和组装清华面向对象程序设计MM1M2M3M4MnM31M32M33分解过程组装过程组装过程清华面向对象程序设计 举例:设计一个程序,将从键盘上输入的举例:设计一个程序,将从键盘上输入的100个整数重新按从小到大的顺序排序,个整数重新按从小到大的顺序排序,并输出重新排序后的结果。并输出重新排序后的结果。将将100个整数排序后输出个整数排序后输出输入输入排序排序输出输出清华面向对象程序

5、设计1.2 面向对象程序设计方法1.2.1 面向对象程序设计的产生背景:面向对象程序设计的产生背景:u 审视问题域的视角审视问题域的视角u 抽象级别抽象级别u 封装体封装体u 可重用性可重用性清华面向对象程序设计1.2.2 面向对象程序设计面向对象程序设计 面向对象程序设计方法是指用面向对面向对象程序设计方法是指用面向对象的方法指导程序设计的整个过程,象的方法指导程序设计的整个过程,所谓面向对象是指以对象为中心,分所谓面向对象是指以对象为中心,分析、设计及构造应用程序的机制。析、设计及构造应用程序的机制。清华面向对象程序设计面向对象程序设计应该具有的特征l 所有待处理的内容都表示成对象;所有待

6、处理的内容都表示成对象;l 对象间依靠相互发送消息或响应消息实现通信;对象间依靠相互发送消息或响应消息实现通信;l 每个对象都有自己的惟一标识,以便区别属于同每个对象都有自己的惟一标识,以便区别属于同一个类的不同对象;一个类的不同对象;l 对象一定属于某个类,我们又将这个对象称为所对象一定属于某个类,我们又将这个对象称为所属类的一个实例;属类的一个实例;l 类是将具有共同属性的对象进行抽象的结果,它类是将具有共同属性的对象进行抽象的结果,它可以具有层次关系,即一个类既可以通过继承其可以具有层次关系,即一个类既可以通过继承其他类而来,也可以被其他类继承。他类而来,也可以被其他类继承。清华面向对象

7、程序设计举例:快速拼写检查程序。举例:快速拼写检查程序。快速拼写检查程序将对用户快速拼写检查程序将对用户提供提供的的单词进行拼写单词进行拼写检查检查,如果在字典中,如果在字典中找到,找到,输出输出“拼写正确拼写正确”的字样,的字样,否则否则输出输出“拼写不正确拼写不正确”的字样。的字样。清华面向对象程序设计结构化程序设计方法Spelling_CheckInputSpellingOutput检查拼写检查拼写输入输入检查检查输出输出清华面向对象程序设计举例:快速拼写检查程序。举例:快速拼写检查程序。快速拼写检查程序将对用户提供的快速拼写检查程序将对用户提供的单词单词进行进行拼写拼写检查,如果在检查

8、,如果在字典字典中中找到,输出找到,输出“拼写正确拼写正确”的的字样字样,否则输出否则输出“拼写不正确拼写不正确”的的字样字样。清华面向对象程序设计面向对象的程序设计方法DictionaryDictionarySetWord面向对象程序面向对象程序=对象对象+消息消息字典字典单词单词集合集合清华面向对象程序设计面向对象程序设计的优点1 1能够实现对现实世界客体的自然描述能够实现对现实世界客体的自然描述2 2可控制程序的复杂性可控制程序的复杂性3 3可增强程序的模块性可增强程序的模块性4 4可提高程序的重用性可提高程序的重用性5 5可改善程序的可维护性可改善程序的可维护性6 6可适应新型的硬件环

9、境可适应新型的硬件环境清华面向对象程序设计1.3 基本概念 抽象抽象 抽象是解决任何问题所采用的基本策略,抽象是解决任何问题所采用的基本策略,是人类认识世界的本能方式。所谓是人类认识世界的本能方式。所谓抽象抽象是是指从许多事物中,舍弃个别的、非本质的指从许多事物中,舍弃个别的、非本质的属性,抽取出共同的、本质的属性的过程,属性,抽取出共同的、本质的属性的过程,它是形成概念的必要手段。它是形成概念的必要手段。抽象主要包括抽象主要包括过程抽象过程抽象和和数据抽象数据抽象两个部两个部分。所谓过程抽象是指功能抽象,即舍弃分。所谓过程抽象是指功能抽象,即舍弃个别的功能,抽取共同拥有的功能,个别的功能,抽

10、取共同拥有的功能,清华面向对象程序设计 数据抽象数据抽象是一种更高级别的抽象方法,它是一种更高级别的抽象方法,它将现实世界中存在的客体作为抽象单元,将现实世界中存在的客体作为抽象单元,其抽象内容既包括客体的其抽象内容既包括客体的属性特征属性特征,也包,也包括括行为特征行为特征,它是面向对象程序设计所采,它是面向对象程序设计所采用的核心方法。用的核心方法。模块化模块化和和信息隐蔽信息隐蔽是数据是数据抽象过程的两个主要概念。抽象过程的两个主要概念。清华面向对象程序设计封装封装 封装是指将现实世界中某个客体的属性与封装是指将现实世界中某个客体的属性与行为聚集在一个逻辑单元内部的机制。利行为聚集在一个

11、逻辑单元内部的机制。利用这种机制可以将属性信息隐藏起来,外用这种机制可以将属性信息隐藏起来,外界只能够通过提供的特定行为接口改变或界只能够通过提供的特定行为接口改变或获取其属性状态。在面向对象的程序设计获取其属性状态。在面向对象的程序设计中,封装是指将对象的属性和行为分别用中,封装是指将对象的属性和行为分别用数据结构数据结构和和方法方法描述,并将它们绑定在一描述,并将它们绑定在一起形成一个可供访问的基本逻辑单元。起形成一个可供访问的基本逻辑单元。清华面向对象程序设计属性属性行为行为1行为行为2行为行为3行为行为4行为行为5行为行为6行为行为8行为行为7清华面向对象程序设计对象对象 对象是用来描

12、述现实世界中客体的部对象是用来描述现实世界中客体的部件,是面向对象软件系统在运行时刻件,是面向对象软件系统在运行时刻的基本单位。为了区分属于同一个类的基本单位。为了区分属于同一个类的不同对象,每个对象都有一个惟一的不同对象,每个对象都有一个惟一的标识。的标识。清华面向对象程序设计对象应该具有下面对象应该具有下面5 5个基本特性:个基本特性:n 自治性,指对象具有一定的独立操作能力;自治性,指对象具有一定的独立操作能力;n 封闭性,指对象具有信息隐蔽的能力;封闭性,指对象具有信息隐蔽的能力;n 通信性,指对象具有与其他对象通信的能力;通信性,指对象具有与其他对象通信的能力;n 被动性,指对象的状

13、态转换需由外界刺激引发;被动性,指对象的状态转换需由外界刺激引发;n 暂存性,指对象的动态创建与消亡。暂存性,指对象的动态创建与消亡。清华面向对象程序设计类类n类是一组具有相同属性特征的对象的抽类是一组具有相同属性特征的对象的抽象描述,是面向对象程序设计的又一个象描述,是面向对象程序设计的又一个核心概念。核心概念。n类是对象抽象的结果。有了类,对象就类是对象抽象的结果。有了类,对象就是类的具体化,是类的实例。类可以有是类的具体化,是类的实例。类可以有子类,同样也可以有父类,从而构成类子类,同样也可以有父类,从而构成类的层次结构。的层次结构。n类之间主要存在三种关系。它们是:关类之间主要存在三种

14、关系。它们是:关联、聚合和泛化。联、聚合和泛化。清华面向对象程序设计消息消息 消息是一个对象要求另一个对象实施某项消息是一个对象要求另一个对象实施某项操作的请求。在一条消息中,需要包含消操作的请求。在一条消息中,需要包含消息的息的接收者接收者和要求和要求接收者接收者执行哪项操作的执行哪项操作的请求请求,而并没有说明应该怎样做,具体的,而并没有说明应该怎样做,具体的操作过程由接收者自行决定。操作过程由接收者自行决定。清华面向对象程序设计 消息传递是对象之间相互联系的惟一途径。消息传递是对象之间相互联系的惟一途径。发送者发送消息,接收者通过调用相应的发送者发送消息,接收者通过调用相应的方法响应消息

15、,这个过程被不断地重复,方法响应消息,这个过程被不断地重复,使得应用程序在人的有效控制下运转起来,使得应用程序在人的有效控制下运转起来,最终得到相应的结果。可以说,最终得到相应的结果。可以说,消息是驱消息是驱动面向对象程序运转的源泉动面向对象程序运转的源泉。清华面向对象程序设计继承继承 继承是类之间的一种常见继承是类之间的一种常见关系。这种关系为共享数关系。这种关系为共享数据和操作提供了一种良好据和操作提供了一种良好的机制。通过继承,一个的机制。通过继承,一个类的定义可以基于另外一类的定义可以基于另外一个已经存在的类。个已经存在的类。继承是继承是面向对象程序设计方法的面向对象程序设计方法的一个

16、重要标志,利用继承一个重要标志,利用继承机制可以大大提高程序的机制可以大大提高程序的可重用性可重用性和和可扩充性可扩充性。父类父类子类子类清华面向对象程序设计多态性多态性 不同的类对象收到同一个消息可以产不同的类对象收到同一个消息可以产生完全不同的响应效果,这种现象叫生完全不同的响应效果,这种现象叫做多态。利用多态机制,用户可以发做多态。利用多态机制,用户可以发送一个通用的消息,而实现的细节由送一个通用的消息,而实现的细节由接收对象自行决定,这样,同一个消接收对象自行决定,这样,同一个消息可能会导致调用不同的方法。息可能会导致调用不同的方法。清华面向对象程序设计面向对象的4个特性p 抽象性抽象

17、性p 封装性封装性p 继承性继承性p 多态性多态性清华面向对象程序设计1.4 面向对象程序设计语言 所谓面向对象程序设计语言所谓面向对象程序设计语言OOPL(Object-Oriented Programming Language)是指提供描述面向对象方法所涉及到的是指提供描述面向对象方法所涉及到的类、对象、继承和多态等基本概念的程类、对象、继承和多态等基本概念的程序设计语言。它应该具有下列特征:识序设计语言。它应该具有下列特征:识别性、分类性、继承性和多态性。别性、分类性、继承性和多态性。清华面向对象程序设计几种有代表性的OOPLn Simula67,支持单继承、一定含义上的多态,支持单继承、一定含义上的多态和部分动态联编。和部分动态联编。n Smalltalk,支持单继承、多态和动态联编。,支持单继承、多态和动态联编。n Eiffel,支持多继承、多态和动态联编。,支持多继承、多态和动态联编。n C+,支持多继承、多态和部分动态联编。,支持多继承、多态和部分动态联编。n Java,提供了类机制,以及有效的接口模型。,提供了类机制,以及有效的接口模型。支持单继承、多态和动态联编。支持单继承、多态和动态联编。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!