- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
天津师范大学计算机与信息工程学院硕士研究生课程讲义
程序设计方法学
第四章: 面向对象程序设计方法
2
1
4.1 面向对象程序设计概述
4.1.1面向对象技术的产生与发展
• 面向对象程序设计方法起源于信息隐藏和抽象数据类型
的概念。
– 程序设计语言第一次尝试使用数据封装:20世纪50年代后期,
Algol语言和Fortran语言开始使用类似begin…end的块结构来保护
块内的变量不与其他同名变量冲突。
– Simula67语言则更进一步,首先引入了对象和类的概念,甚至开
始使用继承来组织类层次。
– 首先支持首先支持抽象数据类型抽象数据类型的语言是的语言是ADA语言语言,,其面向对象的构造的其面向对象的构造的
概念是包。ADA支持抽象数据类型、函数重载、参数化多态等早
期面向对象的机制,但不全面支持继承。
– Smalltalk 比较完整实现了现代面向对象思想。每一个东西都是对
象,包括类本身,程序设计就是类的设计以及对象间的消息传
递。
– C++ 的出现使得面向对象语言从实验室走向实际商业应用。
3
• 面向对象的发展历程实际上就是对数据抽象的不断加深
认识的过程
– 所谓数据隐藏指所谓数据隐藏指一个数据结构以及作用在该结构上的操作所组个数据结构以及作用在该结构上的操作所组
成的一个实体,数据结构的表示被隐藏在操作接口的后面。
– 将类型的概念扩展到数据抽象,即将那些针对某个类型的操作
作为一个整体来看待,并与该类型结合起来看作一个独立单元
,就构成了一个抽象数据类型。
• 程序设计的发展是不断抽象化
• 随着硬件的发展,人们更多地关注如何提高程序设计过程的效
率,而不是程序运行的效率
– 人们希望程序设计尽可能方便,尽可能使用符合自己思维习惯
的方式进行设计,这要求程序设计者在进行程序设计过程中脱
离具体的语言和硬件环境的细节,而将注意力放在待解决问题
和解决方式的描述上,即程序设计不断的抽象化。
– 各种高级语言呈现出不断抽象化的发展趋势。
4
2
语言抽象发展历程
1. 符号的抽象
• 是对二进制的机器指令采用助记符的方式进行标记,方
便程序设计的过程。 高级语言的出现大大提高了编程效率
• 最初步的抽象,往往过分依赖全局变量,对模块化的支
持度也不够。
2. 模块化和信息隐藏
• 将某些数据结构和相关操作封装起来,对外提供一些固
定的接口供用户调用定的接口供用户调用,这就是抽象更深这就是抽象更深一步的发展步的发展——信信
息隐藏(模块化)。
• 模块化和信息隐藏的区别:模块化将一个系统分解为几
个相对独立的实体,信息隐藏则更进一步将模块的细节
对用户隐藏,用户必须通过一些受保护的接口访问模块
,可以说信息隐藏比模块化的抽象级别更高一些。
5
3. 抽象数据类型
• 抽象数据类型(ADT)的基本思想:使用操作数据的操作属
性来描述数据对象的逻辑性质,而不是描述对象的物理
表示。
例如,可通过加减乘除等操作来
• 类、对象、包等 描述整数的性质,与语言无关
4. 面向对象
• 面向对象不仅完整地支持抽象数据
文档评论(0)