面向对象程序设计方法课件

上传人:我*** 文档编号:141980484 上传时间:2020-08-14 格式:PPT 页数:503 大小:3.87MB
返回 下载 相关 举报
面向对象程序设计方法课件_第1页
第1页 / 共503页
面向对象程序设计方法课件_第2页
第2页 / 共503页
面向对象程序设计方法课件_第3页
第3页 / 共503页
面向对象程序设计方法课件_第4页
第4页 / 共503页
面向对象程序设计方法课件_第5页
第5页 / 共503页
点击查看更多>>
资源描述

《面向对象程序设计方法课件》由会员分享,可在线阅读,更多相关《面向对象程序设计方法课件(503页珍藏版)》请在金锄头文库上搜索。

1、1,面向对象程序设计,2,面向对象程序设计,前言 第1章C+语言概述 第2章数据类型和表达式 第3章预处理和语句 第4章函数和作用域 第5章类和对象(一) 第6章类和对象(二) 第7章继承性和派生类 第8章多态性和虚函数 第9章C+的I/O流库,3,地位与作用,是计算机科学与技术专业本科生的一门必修课程,面向对象软件开发集抽象性、封装性、继承性和多态性于一体,可以帮助人们开发出模块化、数据抽象程度高的,体现信息隐蔽、可复用、易修改、易扩充等特性的程序,4,内容简介,面向对象的基本思想,C+语言的基本概念、基本语法和编程方法,C+语言的面向对象特征,类与对象,继承与派生,多态性与虚函数,5,学习

2、方法,多练习,掌握基本概念,多读程序,学习编程方法与技巧,多上机实践,加强动手能力,多剖析范例,积累编程经验,6,面向过程的程序设计(以C语言为例),1、自上而下(top-down)的设计方式:是一个自顶向下,逐步求精的过程;2、以main函数概括出整个应用程序需要做的事情,而main函数由对一系列的子函数的调用组成; main中的每一个子函数都可以被精炼成更小的函数。重复这个过程,即可完成一个过程式的设计;3、特征是以函数为中心,以函数作为划分程序的基本单位,数据往往处于从属地位。,7,过程式设计的优缺点:,优点:易于掌握与理解,符合人们的思维习惯; 缺点: 1、不能适应问题比较复杂,或者需

3、求经常变化的情况; 2、数据与操作分离开,对数据与操作的修改变得很困难; 3、程序架构的依赖关系不合理:main函数依赖于子函数,子函数又依赖于更小的子函数; 程序的核心逻辑依赖于外延的细节,一个细节上的小改动,会引起一系列的变动。,8,什么是面向对象程序设计 ?,面向对象程序设计(Object-oriented programming,OOP),指一种程序设计范型,同时也是一种程序开发的方法论。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。,9,面向对象程序设计 1历史回顾,1967年挪威计算中心的Kisten Nygaard和Ole Johan Da

4、hl开发了Simula67语言,它提供了比子程序更高一级的抽象和封装,引入了数据抽象和类的概念,它被认为是第一个面向对象语言。,10,2面向对象程序设计的基本概念,面向对象程序设计中的概念主要包括:对象、类、数据抽象、继承、动态绑定、数据封装、多态性、消息传递。通过这些概念面向对象的思想得到了具体的体现。,11,3面向对象语言,一个语言要称为面向对象语言必须支持几个主要面向对象的概念。根据支持程度的不同,通常所说的面向对象语言可以分成两类:基于对象的语言,面向对象的语言。 基于对象的语言仅支持类和对象, 如Ada、Alphard、CLU、Euclid、Modula等,它们不支持继承、多态。 而

5、面向对象的语言支持的概念包括:类与对象、继承、多态。例如Smalltalk、Java。 另外一些则是对现有的语言进行改造,增加面向对象的特征演化而来的。如C+,由Ada发展而来的Ada 95等,这些语言保留着对原有语言的兼容,并不是纯粹的面向对象语言,。,12,教材及参考书目,C+语言基础教程(第二版)吕凤翥著清华大学出版社2007,C+语言及其程序设计教程(修订版)张国峰编著电子工业出版社1997,C+语言程序设计郑莉等编著清华大学出版社1999,C+程序设计教程钱能编著清华大学出版社1999,13,第1章C+语言概述,基本要求 了解:面向对象程序设计的基本思想及基本概念;面向对象语言的分类

6、和c+中支持面向对象的特点;面向对象的软件开发环境;visual c+开发工作台的主要功能。,14,第1章C+语言概述,1.1C+的起源及特点 1.2面向对象的方法 1.3面向对象的程序设计语言C+ 1.4C+程序的编辑、编译和运行 1.5C+的词法及词法规则 1.6C+程序的结构,15,1.1.1面向对象的由来和发展,机器语言(二进制码),汇编语言,20世纪50年代中期,FORTRAN语言,20世纪50年代中期,Algol语言,在计算机语言发展史上具有划时代的意义,引入了许多程序设计概念。如变量、数组、循环、分支等。,提出块(BeginEnd)思想,对数据进行保护,是一种初级封装。,16,1

7、.1.1面向对象的由来和发展(续),20世纪60年代中期,Simula 67语言,面向对象语言的鼻祖,提出了对象、类的概念,并支持类的继承。,20世纪70年代中期,Ada语言,支持数据抽象类型的最重要的语言之一,但不完全支持继承。,20世纪70年代中期,Smalltalk语言,最有影响的面向对象语言之一,丰富了面向对象的概念。,20世纪80年代中期后出现C+等多种面向对象语言,17,Ada,ALGOL60,ALGOL68,Pascal,Modula-2,CPL,BCPL,B,C,C+,Java,LISP,PROLOG,COBOL,FORTRAN77,FORTRAN,PL/1,Simula 67

8、,Smalltalk 80,BASIC,ANSI-BASIC,QBASIC,VB,FORTRAN90,18,1.1.2C+的起源和特点,一、C+的起源,在C语言基础上为支持面向对象的程序设计研制的一个通用目的的程序设计语言;,由AT int wdcount,chcount; wdcount=1; chcount=0; printf(*:Please input any phrasen); while(ch=getche()!=r) chcount+;,25,1.2.1面向过程与面向对象程序设计(续),if(ch= ) wdcount+; printf(n*:The number of word

9、 is %dn,wdcount); printf(n*:The number of char is %dn,chcount); ,面向对象的方法,#include #include class count public:,26,1.2.1面向过程与面向对象程序设计(续),count(); void process(); void display(); private: int wdcount,chcount; ; count:count() wdcount=1; chcount=0; void count:process() ,27,1.2.1面向过程与面向对象程序设计(续),char ch;

10、 cout*:Please input any phraseendl; while(ch=getche()!=r) chcount+; if(ch= ) wdcount+; coutendl; void count:display() printf(n*:The number of word is %dn,wdcount);,28,1.2.1面向过程与面向对象程序设计(续),printf(n*:The number of char is %dn,chcount); void main() count A; A.process(); A.display(); ,运行结果,*Please inpu

11、t any phrase. I am a teacher *:The number of word is 4 *:The number of char is 15,29,1.2.1面向过程与面向对象程序设计(续),是一种数学思维或计算机思维方法,与人们认识世界的方法不同 以不稳定的、多变的“过程”和“操作” 为中心来构造系统 可重用性较差,是建立在认识方法学基础上的一项技术科学,比较自然地模拟了人类认识客观世界的方式; 以相对稳定的“对象”和“数据结构”为中心来构造系统 可重用性较好,面向过程程序设计,面向对象程序设计,30,1.2.1面向过程与面向对象程序设计(续),面向过程程序设计,面向对

12、象程序设计,P1,P2,P3,P4,P5,O1,O2,O3,O4,O5,Changing?,P6,31,1.2.1面向过程与面向对象程序设计(续),面向过程程序设计,面向对象程序设计,P1,P2,P3,P5,O1,O2,O3,O4,O5,Changing?,P6,O4,32,1.2.2抽象在面向对象中的作用,一、抽象的概念,抽象代表着一个对象的本质特征,这个特征将这个对象与所有其他种类的对象区别开来;,抽象是通过从特定的实例中抽取共同的性质以形成一般化的概念的过程;,抽象具有层次;,飞机,33,1.2.2抽象在面向对象中的作用(续),二、面向对象抽象的原理(面向对象计算的本质),数据抽象、行为

13、共享、进化、确定性,1、数据抽象,为程序员提供了一种对数据和为操作这些数据所需要的算法的抽象;是面向对象方法的核心,包括:,模块化:构成了面向对象计算的本质;,信息隐藏:将一个模块的细节部分对用户隐藏起来,用户只能通过一个受保护的接口来访问某个模块,而不能直接访问一个模块内部的细节;,类,公有成员,34,1.2.2抽象在面向对象中的作用(续),2、行为共享,行为是由实体的外部接口定义的,行为共享指许多实体具有相同的接口,可增加系统的灵活性;,支持行为共享的方式,分类与层次分类,多态与继承,对象,公有成员函数名,35,1.2.2抽象在面向对象中的作用(续),3、进化,需求进化(虚函数),进化式的

14、问题求解(继承的构造函数),4、确定性,确保每个行为项都有一个正确的解释,系统不会因不能响应某一行为而失败;,确定性与类型的正确性有关;,36,1.2.3面向对象计算的基本特征,面向对象系统的三要素:对象、类和继承;,一、对象,1、概念上,对象是代表着正在创建的系统中的一个实体;,2、实现形式上,对象是一个状态和操作(或方法)的封装体;,3、对象的定义,状态:对象的状态由这个对象的属性和这些属性的当前值决定。属性是静态的,当前值是动态的;,一个对象具有状态、行为和标识。,37,1.2.3面向对象计算的基本特征(续),行为:一个对象如何以状态变化和消息传递的形式进行作用和对外界进行反应。,一个对

15、象的行为代表了这个对象的外部可见的和可测试的活动;,一个对象的状态代表着它的行为的累积结果;,标识:标识是一个对象固有的一种特性,该特性将这个对象与其他对象区别开来;,对象1,38,1.2.3面向对象计算的基本特征(续),4、对象的分类,实体对象,界面对象,控制对象,按作用分类,存储信息的对象,支持系统的主要功能,5、对象的确认,发明对象:主要是控制对象;,发现对象:主要是实体对象或界面对象;,二、类,1、什么是类,39,1.2.3面向对象计算的基本特征(续),类是创建对象的样板,它包含着所创建对象的状态描述和方法的定义。类的完整描述包含了外部接口和内部算法以及数据结构的形式;,2、类是对象的

16、抽象及描述,类中包含生成对象的具体方法,由一个类所创建的对象称为该类的实例;,3、类是抽象数据类型的实现,类是所有对象的共同的行为和不同的状态的集合体;,三、继承,继承提供了创建新类的一种方法,它的本质特征是行为共享;,40,1.2.3面向对象计算的基本特征(续),41,1.3.1C+语言中的抽象支持,控制抽象:用于排列任意动作的顺序的一种方法;,三种语句控制结构:顺序、循环、分支,过程抽象(面向过程):对一组输入数据的一个计算动作和产生的输出结果;,数据抽象(面向对象):类是实现抽象数据类型的工具;,42,1.3.2C+对面向对象程序设计方法的支持,C+支持数据封装(数据抽象),C+中,类是支持数据封装的工具,对象则是

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

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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