- 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
- 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
- 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
thinkinginc[c编程思想][zh-cn]
下载
第1章 对象的演化
计算机革命起源于一台机器,程序设计语言也源于一台机器。
然而计算机并不仅仅是一台机器,它是心智放大器和另一种有表述能力的媒体。这一点
使它不很像机器,而更像我们大脑的一部分,更像其他有表述能力的手段,例如写作、绘画、
雕刻、动画制作或电影制作。面向对象的程序设计是计算机向有表述能力的媒体发展中的一
部分。
本章将介绍面向对象程序设计(O O P )的基本概念,然后讨论O O P开发方法,最后介绍使
程序员、项目和公司使用面向对象程序设计方法而采用的策略。
本章是一些背景材料,如果读者急于学习这门语言的具体内容,可以跳到第 2章,然后再
回过头来学习本章。
1.1 基本概念
C + +包含了比面向对象程序设计基本概念更多的内容,读者应当在学习设计和开发程序之
前先理解该语言所包含的基本概念。
1.1.1 对象:特性+行为[1]
第一个面向对象的程序设计语言是 6 0年代开发的 S i m u l a - 6 7。其目的是为了解决模拟问题。
典型的模拟问题是银行出纳业务,包括出纳部门、顾客、业务、货币的单位等大量的“对象”。
把那些在程序执行期间除了状态之外其他方面都一样的对象归在一起,构成对象的“类”,这
就是“类”一词的来源。
类描述了一组有相同特性(数据元素)和相同行为(函数)的对象。类实际上就是数据类
型,例如,浮点数也有一组特性和行为。区别在于程序员定义类是为了与具体问题相适应,而
不是被迫使用已存在的数据类型。这些已存在的数据类型的设计动机仅仅是为了描述机器的存
储单元。程序员可以通过增添他所需要的新数据类型来扩展这个程序设计语言。该程序设计系
统欢迎创建、关注新的类,对它们进行与内部类型一样的类型检查。
这种方法并不限于去模拟具体问题。尽管不是所有的人都同意,但大部分人相信,任何程
序都模拟所设计系统。O O P技术能很容易地将大量问题归纳成为一个简单的解,这一发现产生
了大量的O O P语言,其中最著名的是S m a l l t a l k—C++ 之前最成功的O O P语言。
抽象数据类型的创建是面向对象程序设计中的一个基本概念。抽象数据类型几乎能像内部类
型一样准确工作。程序员可以创建类型的变量(在面向对象程序设计中称为“对象”或“实例”)
并操纵这些变量(称为发送“消息”或“请求”,对象根据发来的消息知道需要做什么事情)。
1.1.2 继承:类型关系
类型不仅仅说明一组对象上的约束,还说明与其他类型之间的关系。两个类型可以有共同
的特性和行为,但是,一个类型可能包括比另一个类型更多的特性,也可以处理更多的消息
[1] 这一描述部分引自我对《The Tao of Objects 》(Gary Entsminger著)一书的介绍。
2 C + +编程思想
下载
(或对消息进行不同的处理)。继承表示了基本类型和派生类型之间的相似性。一个基本类型具
有所有由它派生出来的类型所共有的特性和行为。程序员创建一个基本类型以描述系统中一些
对象的思想核心。由这个基本类型派生出其他类型,表达了认识该核心的不同途径。
例如,垃圾再生机要对垃圾进行分类。这里基本类型是“垃圾”, 每件垃圾有重量、价值
等等,并且可以被破碎、融化或分解。这样,可以派生出更特殊的垃圾类型,它们可以有另外
的特性(瓶子有颜色)或行为(铝可以被压碎,钢可以被磁化)。另外,有些行为可以不同
(纸的价值取决于它的种类和状态)。程序员可以用继承建立类的层次结构,在该层次结构中用
类型术语来表述他需要解决的问题。
第二个例子是经典的形体问题,可以用于计算机辅助设计系统或游戏模拟中。这里基本类
型是“形体”,每个形体有大小、颜色、位置等。每个形体能被绘制、擦除、移动、着色等。
由此,可以派生出特殊类型的形体:圆、正方形、三角形等,它们中的每一个都有另外的特性
和行为,例如,某些形体可以翻转。有些行为可以不同(计算形体的面积)。类型层次结构既
体现了形体间的类似,又体现了它们之间的区别。
用与问题相同的术语描述问题的解是非常有益的,这样,从问题描述到解的描述之间就不
需要很多中间模型(程序语言解决大型问题,就需要中间模型)。面向对象之前的语言,描述
问题的解不可避免地要用计算机术语。使用对象术语,类型层次结构是主要模型,所以可以从
现实
您可能关注的文档
- 电子材料与工艺学.pdf
- 东软saca aclome云管理平台架构演进之路.pdf
- 董作宾篆刻创作实例赏析.pdf
- 董亚巍:《东周青铜剑的铸造工艺》.pdf
- 董作宾甲骨书法篆刻作品欣赏.pdf
- 动漫基础---日式漫画人物速成指南(一).pdf
- 动物实验基本操作技术之三.pdf
- 动物实验基本操作技术之一.pdf
- 杜甫 咏怀古迹.pdf
- (四)使用ccs进行dsp编程--ccs编程入门.pdf
- 浙江省温州市浙南名校联盟2025-2026学年高一上学期期中联考数学试题含解析.docx
- 26高考数学提分秘诀重难点34圆锥曲线中的定点、定值、定直线问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点35概率与统计的综合问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点31圆锥曲线中的切线与切点弦问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点30圆锥曲线中的弦长问题与长度和、差、商、积问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点29巧解圆锥曲线的离心率问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点28直线与圆的综合(举一反三专项训练)(全国通用)(含解析).docx
- 寡核苷酸药物重复给药毒性研究技术指南.docx
- 重组溶瘤腺病毒生产质量管理标准.docx
- 26高考数学提分秘诀重难点27直线与圆中常考的最值与范围问题(举一反三专项训练)(全国通用)(含解析).docx
最近下载
- 2025年注册信息系统安全专家(CISSP)考试题库(附答案和详细解析)(1010).docx VIP
- 《苯二氮卓类药物的合成》课件.ppt VIP
- 2025黑龙江专升本植物学考试真题 .pdf VIP
- CISSP信息系统安全工程师认证考试题库.pdf VIP
- CISSP_Official_PRACTICE_TESTS考试认证题库.docx VIP
- 集装箱正面吊运机液压系统设计主要性能试验研究与应用.pdf VIP
- tissin_positioner_ts900-manual_c调试详细步骤.pdf VIP
- 危化品车辆运输安全培训课件.pptx VIP
- 2025广西公需科目考试答案(3套涵盖95-试题)一区两地一园一通道建设人工智能时代的机遇与挑战.docx
- 2025秋沪教牛津新七年级上知识点清单(背诵版) .pdf VIP
原创力文档


文档评论(0)