基于C++的面向对象编程教程

上传人:jiups****uk12 文档编号:45621390 上传时间:2018-06-18 格式:PPT 页数:65 大小:189KB
返回 下载 相关 举报
基于C++的面向对象编程教程_第1页
第1页 / 共65页
基于C++的面向对象编程教程_第2页
第2页 / 共65页
基于C++的面向对象编程教程_第3页
第3页 / 共65页
基于C++的面向对象编程教程_第4页
第4页 / 共65页
基于C++的面向对象编程教程_第5页
第5页 / 共65页
点击查看更多>>
资源描述

《基于C++的面向对象编程教程》由会员分享,可在线阅读,更多相关《基于C++的面向对象编程教程(65页珍藏版)》请在金锄头文库上搜索。

1、基于C+的面向对象编程教程于芹芬 2003年春*Dr. Haiin Zhu关于课程(1)n目标n进一步学会面向过程编程n理解面向对象思想n以对象的方式思考n熟悉C+ (P)n利用 C+编程DateDr. Haiin Zhun在本课程中:nC+ 是一个学习面向对象概念的工具n运用面向对象模式进行程序设计DateDr. Haiin Zhun采用面向对象方法的效果 (OOA/OOD)n可维护性n可扩展性n可靠性DateDr. Haiin Zhu如何实现课程目标n阅读和记忆n阅读书籍, 记住语言特点n思考n以对象和类的方式思考n实践n多编程DateDr. Haiin Zhu参考课本nC+程序设计教程(

2、钱能),清华大学出版 社nC+程序设计教程,H.M.Deitel,nP.J.Deitel著,机械工业出版社n C+大学教程(第二版),Harveay M. Deitel著,电子工业出版社 nC+ Primer(第三版),Stanley B.lippmannJosee Lajoie著,中国电力出版社nC+编程思想(Thinking in C+),Bruce Eckel著,机械工业出版社 DateDr. Haiin Zhu1 从C语言到C+语言C语言以其如下独有的特点风靡了全世界: (1)语言简洁、紧凑,使用方便、灵活。 C语言只有32个关键字,程序书写形式自 由。 (2)丰富的运算符和数据类型。

3、 (3)可以直接访问内存地址,能进行位操 作,使其能够胜任开发操作系统的工作 。DateDr. Haiin Zhu(4)生成的目标代码质量高,程序运行效 率高。 (5)可移植性好。DateDr. Haiin Zhun局限性: (1)数据类型检查机制相对较弱,这使得程序 中的一些错误不能在编译阶段被发现。 (2)C本身几乎没有支持代码重用的语言结构, 因此一个程序员精心设计的程序,很难为其它 程序所用。 (3)当程序的规模达到一定程度时,程序员很 难控制程序的复杂性。DateDr. Haiin Zhu发展n1980年,贝尔实验室的Bjarne Stroustrup开 始对C进行改进和扩充。n19

4、83年正式命名为C+。n在经历了3次C+修订后,1994年制定了ANSI C+ 标准的草案。以后又经过不断完善,成为 目前的C+。nC+仍在不断发展中。美国微软公司现已推出 C#(C Sharp)语言,来代替C+语言。DateDr. Haiin Zhu编译器nVC+6.0n或其它(Turbor C 3.0,Borland C+)DateDr. Haiin Zhu有关面向对象编程的网站www.soft- objects.html ology.html www.cyberdyne-object- www.itr.ch/courses/case/oo.html Haiin ZhuC+的网站 bo

5、rlandcpp/ Haiin ZhuObject-Oriented 编程简介*Dr. Haiin Zhu内容n方法学n编程技术n面向对象语言DateDr. Haiin Zhu1. 方法学*Dr. Haiin Zhu思考问题的方法n归纳n从特殊到一般n从不同的 dogs 到词汇 “dog” DogDateDr. Haiin Zhu思考问题的方法n演绎n从一般到特殊n从词汇“dog”,你可以区别出一个动物是 还是不是一条狗DOGDateDr. Haiin Zhu面向对象n它是一种思考方法n世界上的任何东西都是一个对象;n任何系统都是由对象构成的 (当然系统也是一 个对象);n系统的演化和开发就是

6、通过系统内外的对象进 行交互完成的。DateDr. Haiin Zhu世界上的任何东西都是一个对象n花, 树, 动物n学生, 教授n桌子, 椅子, 教室, 建筑n大学, 城市, 国家n世界, 宇宙n学科,如计算机,信息系统,数学,历史 DateDr. Haiin Zhu任何系统都是由对象构成的n法律系统n文化系统n教育系统n经济系统n信息系统n计算机系统DateDr. Haiin Zhu系统开发就是定义对象间的交互n浙江林学院是由下列对象的交互构成的:n学生n教授n职员n浙江省政府n中国政府n .林院内部林院外部DateDr. Haiin Zhu设计方法学n面向对象首先是一种设计方法学 (OO

7、A/OOD)n对象是程序的构成模块 (接口对象 (editor, menu, file, etc), 数据管理对象 (db), etc.).n对象代表了在应用中对现实世界的抽象.DateDr. Haiin Zhu设计方法学n面向对象支持n归纳: 对象 - 类n需要OOA/OOD工具.n演绎: 类-对象n编程者需要学习有关类库的知识DateDr. Haiin Zhu设计方法学n面向对象支持nTop-down: 从超类到子类nBottom-up: 从子类到超类DateDr. Haiin Zhun面向对象编程的基础 *对象 *封装 *继承 一般说来,对象是根据类来定义的。我们也可以用一个类 来定义另

8、一个类。例如,山地车、赛车和双座自行车都是 自行车的一种。用面向对象的术语来说,它都是自行车类 的子类或派生类,而自行车类是它们的超类或父类或基类 。它们的关系如下图所示: 自行车每一个子类继承了超类的数据和操作,但是,子类并不是局 限于超类的数据和操作。例如,双座自行车有两个坐垫,山 地车有一个额外的低速齿轮。继承的主要益处是可以复用 超类的程序代码*多态赛车三地车双座自行车DateDr. Haiin Zhu面向对象n“世界是面向对象的”n-Alan Kay said.n如果你对世界了解,那么你就了解了面 向对象.n所以,面向对象是容易的.DateDr. Haiin Zhu2.编程*Dr.

9、Haiin Zhun编程就像写作.n如果你能够描绘一样东西,你就可以写 一个程序.n所以,编程也是容易的.n所以,面向对象的编程等于 容易 + 容 易, 得到“ too(2) easy”.编程DateDr. Haiin Zhu编程n但是,实际上,编程并不那么容易。因 为编一个真正的好的程序是不容易的。 它需要编程者的智慧,知识和经验.n就象写作一样,要成为一个好的作家, 就需要很多的经验和对这个世界的大量 知识。n学习和练习就必不可少。DateDr. Haiin Zhu编程技术n非结构化编程n过程编程n模块化 n识别出来的操作; nADT 就是一种模型.DateDr. Haiin ZhuInt

10、erfaceOperations Abstract Data StructureAbstract Data TypeADTDateDr. Haiin Zhu定义 (ADT)nADT 有下列一些特性: n1. 它提供了一种类型. n2. 它提供了操作的集合. 该集合被称为接口. n3. 接口的操作是类型数据结构的唯一访问途 径. n4. 原理和前提定义了类型的应用领域. DateDr. Haiin Zhu例子: ADT Listn类型 List. n类型list实例的接口由接口定义文件定义n操作: insert, get, append, delete,search,DateDr. Haiin

11、Zhu面向对象的编程n对象是由抽象数据类型来的n面向对象编程是对象交互的一个网络, 每一个对象保存自己的状态n程序中的对象通过发送消息进行交互DateDr. Haiin ZhuObject1Data1+Procedures1DataData1Object3Data3 + Procedures3Object2Data2 + Procedures2 Object4Data4 + Procedures4DateDr. Haiin Zhu面向对象编程n在面向对象编程中,我们直接发送一个 消息,而不是去调用一个程序来实现一 个功能. n粗略地说,每一个对象实现了自己的模 块DateDr. Haiin Z

12、hu面向对象编程n每一个对象负责正确地初始化和销毁 自身. n相应地,对对象而言,我们就不需要 显式地创建和生成过程DateDr. Haiin Zhun模块n信息隐藏n数据封装n抽象数据类型n对象面向对象的演化DateDr. Haiin Zhu记住n封装(Data & Operations)- 信息隐藏的 技术对象的用户不能看到对象的数 据和操作的细节.n数据抽象 - 从对象中发现类的过程n抽象数据类型- 类DateDr. Haiin Zhu3.编码语言*Dr. Haiin Zhu面向对象语言n面向对象编程语言就是能够很方便地支持 面向对象概念的语言nSmalltalk:1972-1980.n

13、C+:1986.nJava:1992 (Smalltalk + C+).n其它:nEffile, Objective-C, Ada, .DateDr. Haiin ZhuSmalltalknSmalltalk 是一个纯的面向对象语言. n多数人认为Smalltalk 程序比 C+ 程序开 发起来更快.DateDr. Haiin ZhuSmalltalkn丰富的类库,通过继承实现重用nSmalltalk 拥有动态开发环境。它不是编译 的,但是 C+ 是编译的. n这使得开发过程更可变,你可以方便地对 类和各种情形进行修改DateDr. Haiin ZhuSmalltalk编程者并不能象在C+中那

14、样立即掌握 o-o概念. 正因为如此,掌握Smalltalk需 要更多地时间. 但是多数时间是花在学 习面向对象方法学和技术上,而不是编 程语言上的。实际上,Smalltalk 比C和 C+更为简单. DateDr. Haiin ZhuC+nC+ 是 C的面向对象版本. 它与 C是一 致的 (它实际上是C的超集), 所以现存的 C 代码能够包含在 C+ 程序中.n C+ 程序速度快,效率高. n这些特性已经使C成为很流行的语言. DateDr. Haiin ZhuC+n它牺牲了一些灵活性以提高效率. nC+ 采用编译时绑定的方法。这使 得程序运行时的效率很高,代码也较 小,但是它影响了重用类的

15、某些能力 . DateDr. Haiin ZhuC+nC+ 已经非常流行,绝大多数新的 C 编译器实际上是 C/C+ 编译器. 但是 ,如果想进行面向对象编程,你必须用 C+编程(思考),而不是C. n这些都将对有经验的C编程者带来挑战 。他们认为他们是在运用C+编程,但 实际上只用了很少的面向对象特点。DateDr. Haiin ZhuC+nC+ 是一个优秀的语言.n利用它, 你可以编出世界上最好的程序!nC+ 是一个差的语言.n使用它,你也可能编出世界上最差的程序n所以,在学习和使用它时,注意它的OO 特性和非OO特性。DateDr. Haiin ZhuJavan它是一个可移植语言,它可以运行在浏览 器上。因此,它在Internet和Intranet上 发挥出了极大的作用。DateDr. Haiin ZhuJavanJava是 C+ 和Smalltalk古怪的混合

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号