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

上传人:PIYPING 文档编号:11918931 上传时间:2021-10-29 格式:PPT 页数:65 大小:187KB
返回 下载 相关 举报
基于C++的面向对象编程教程.ppt_第1页
第1页 / 共65页
基于C++的面向对象编程教程.ppt_第2页
第2页 / 共65页
基于C++的面向对象编程教程.ppt_第3页
第3页 / 共65页
基于C++的面向对象编程教程.ppt_第4页
第4页 / 共65页
基于C++的面向对象编程教程.ppt_第5页
第5页 / 共65页
点击查看更多>>
资源描述

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

1、基于C+的面向对象编程教程,于芹芬 2003年春,关于课程(1),目标 进一步学会面向过程编程 理解面向对象思想 以对象的方式思考 熟悉C+ (P) 利用 C+编程,在本课程中: C+ 是一个学习面向对象概念的工具 运用面向对象模式进行程序设计,采用面向对象方法的效果 (OOA/OOD) 可维护性 可扩展性 可靠性,如何实现课程目标,阅读和记忆 阅读书籍, 记住语言特点 思考 以对象和类的方式思考 实践 多编程,参考课本,C+程序设计教程(钱能),清华大学出版社 C+程序设计教程,H.M.Deitel, P.J.Deitel著,机械工业出版社 C+大学教程(第二版),Harveay M. De

2、itel著,电子工业出版社 C+ Primer(第三版),Stanley B.lippman Josee Lajoie著,中国电力出版社 C+编程思想(Thinking in C+),Bruce Eckel著,机械工业出版社,1 从C语言到C+语言,C语言以其如下独有的特点风靡了全世界: (1)语言简洁、紧凑,使用方便、灵活。C语言只有32个关键字,程序书写形式自由。 (2)丰富的运算符和数据类型。 (3)可以直接访问内存地址,能进行位操作,使其能够胜任开发操作系统的工作。,(4)生成的目标代码质量高,程序运行效率高。 (5)可移植性好。,局限性: (1)数据类型检查机制相对较弱,这使得程序中

3、的一些错误不能在编译阶段被发现。 (2)C本身几乎没有支持代码重用的语言结构,因此一个程序员精心设计的程序,很难为其它程序所用。 (3)当程序的规模达到一定程度时,程序员很难控制程序的复杂性。,发展,1980年,贝尔实验室的Bjarne Stroustrup开始对C进行改进和扩充。 1983年正式命名为C+。 在经历了3次C+修订后,1994年制定了ANSI C+ 标准的草案。以后又经过不断完善,成为目前的C+。 C+仍在不断发展中。美国微软公司现已推出C#(C Sharp)语言,来代替C+语言。,编译器,VC+6.0 或其它(Turbor C 3.0,Borland C+),有关面向对象编程

4、的网站,www.soft- objects.html www.cyberdyne-object- www.itr.ch/courses/case/oo.html ,C+的网站, borlandcpp/cpprod.html www.gnacademy.org,Object-Oriented 编程简介,内容,方法学 编程技术 面向对象语言,1. 方法学,思考问题的方法,归纳 从特殊到一般 从不同的 dogs 到词汇 “dog”,Dog,思考问题的方法,演绎 从一般到特殊 从词汇“dog”,你可以区别出一个动物是还是不是一条狗,DOG,面向对象,它是一种思考方法 世界上的任何东西都是一个对象; 任

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

6、or, menu, file, etc), 数据管理对象 (db), etc.). 对象代表了在应用中对现实世界的抽象.,设计方法学,面向对象支持 归纳: 对象 - 类 需要OOA/OOD工具. 演绎: 类-对象 编程者需要学习有关类库的知识,设计方法学,面向对象支持 Top-down: 从超类到子类 Bottom-up: 从子类到超类,面向对象编程的基础 *对象 *封装 *继承一般说来,对象是根据类来定义的。我们也可以用一个类来定义另一个类。例如,山地车、赛车和双座自行车都是自行车的一种。用面向对象的术语来说,它都是自行车类的子类或派生类,而自行车类是它们的超类或父类或基类。它们的关系如下图

7、所示: 自行车 每一个子类继承了超类的数据和操作,但是,子类并不是局限于超类的数据和操作。例如,双座自行车有两个坐垫,山地车有一个额外的低速齿轮。继承的主要益处是可以复用超类的程序代码 *多态,赛车,三地车,双座自行车,面向对象,“世界是面向对象的” -Alan Kay said. 如果你对世界了解,那么你就了解了面向对象. 所以,面向对象是容易的.,2.编程,编程就像写作. 如果你能够描绘一样东西,你就可以写一个程序. 所以,编程也是容易的. 所以,面向对象的编程等于 容易 + 容易, 得到“ too(2) easy”.,编程,编程,但是,实际上,编程并不那么容易。因为编一个真正的好的程序是

8、不容易的。它需要编程者的智慧,知识和经验. 就象写作一样,要成为一个好的作家,就需要很多的经验和对这个世界的大量知识。 学习和练习就必不可少。,编程技术,非结构化编程 过程编程 模块化 识别出来的操作; ADT 就是一种模型.,Interface,Operations,Abstract Data Structure,Abstract Data Type,ADT,定义 (ADT),ADT 有下列一些特性: 1. 它提供了一种类型. 2. 它提供了操作的集合. 该集合被称为接口. 3. 接口的操作是类型数据结构的唯一访问途径. 4. 原理和前提定义了类型的应用领域.,例子: ADT List,类型

9、 List. 类型list实例的接口由接口定义文件定义 操作: insert, get, append, delete,search,面向对象的编程,对象是由抽象数据类型来的 面向对象编程是对象交互的一个网络,每一个对象保存自己的状态 程序中的对象通过发送消息进行交互,Object1,Data1+Procedures1,Data,Data1,Object3,Data3 + Procedures3,Object2,Data2 + Procedures2,Object4,Data4 + Procedures4,面向对象编程,在面向对象编程中,我们直接发送一个消息,而不是去调用一个程序来实现一个功能

10、. 粗略地说,每一个对象实现了自己的模块,面向对象编程,每一个对象负责正确地初始化和销毁自身. 相应地,对对象而言,我们就不需要显式地创建和生成过程,模块 信息隐藏 数据封装 抽象数据类型 对象,面向对象的演化,记住,封装(Data & Operations)- 信息隐藏的技术对象的用户不能看到对象的数据和操作的细节. 数据抽象 - 从对象中发现类的过程 抽象数据类型- 类,3.编码语言,面向对象语言,面向对象编程语言就是能够很方便地支持面向对象概念的语言 Smalltalk:1972-1980. C+:1986. Java:1992 (Smalltalk + C+). 其它: Effile,

11、 Objective-C, Ada, .,Smalltalk,Smalltalk 是一个纯的面向对象语言. 多数人认为Smalltalk 程序比 C+ 程序开发起来更快.,Smalltalk,丰富的类库,通过继承实现重用 Smalltalk 拥有动态开发环境。它不是编译的,但是 C+ 是编译的. 这使得开发过程更可变,你可以方便地对类和各种情形进行修改,Smalltalk,编程者并不能象在C+中那样立即掌握o-o概念. 正因为如此,掌握Smalltalk需要更多地时间. 但是多数时间是花在学习面向对象方法学和技术上,而不是编程语言上的。实际上,Smalltalk 比C和C+更为简单.,C+,C

12、+ 是 C的面向对象版本. 它与 C是一致的 (它实际上是C的超集), 所以现存的 C 代码能够包含在 C+ 程序中. C+ 程序速度快,效率高. 这些特性已经使C成为很流行的语言.,C+,它牺牲了一些灵活性以提高效率. C+ 采用编译时绑定的方法。这使得程序运行时的效率很高,代码也较小,但是它影响了重用类的某些能力.,C+,C+ 已经非常流行,绝大多数新的 C 编译器实际上是 C/C+ 编译器. 但是,如果想进行面向对象编程,你必须用C+编程(思考),而不是C. 这些都将对有经验的C编程者带来挑战。他们认为他们是在运用C+编程,但实际上只用了很少的面向对象特点。,C+,C+ 是一个优秀的语言

13、. 利用它, 你可以编出世界上最好的程序! C+ 是一个差的语言. 使用它,你也可能编出世界上最差的程序 所以,在学习和使用它时,注意它的OO特性和非OO特性。,Java,它是一个可移植语言,它可以运行在浏览器上。因此,它在Internet和Intranet上发挥出了极大的作用。,Java,Java是 C+ 和Smalltalk古怪的混合. 它具有 C+的语法, 使它容易学习(也许是难以学习,这依赖于学习者的经验). 它具有Smalltalk的结构, 如虚拟机和字节码.,Java(续),C+的改进: 取消指针 垃圾回收 运行在类似于 Smalltalk-风格的虚拟机上 只要具有虚拟机,不同的机器上都可以运行,Java,Java 开发工具目前也已经有很多种了,如 Sun,Borland,IBM, Microsoft,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1