面向对象程序设计(谭浩强版)ppt课件.ppt
《面向对象程序设计(谭浩强版)ppt课件.ppt》由会员分享,可在线阅读,更多相关《面向对象程序设计(谭浩强版)ppt课件.ppt(499页珍藏版)》请在三一办公上搜索。
1、面向对象程序设计,面向对象程序设计,第1章C+的初步知识第2章类和对象第3章关于类和对象的进一步讨论第4章运算符重载第5章继承与派生第6章多态性与虚函数第7章输入输出流第8章工具,内容简介,面向对象的基本思想,C+语言的基本概念、基本语法和编程方法,C+语言的面向对象特征,类与对象,继承与派生,多态性与虚函数,学习方法,多练习,掌握基本概念,多读程序,学习编程方法与技巧,多上机实践,加强动手能力,多剖析范例,积累编程经验,教材及参考书目,C+语言基础教程吕凤翥著清华大学出版社1999,C+语言及其程序设计教程(修订版)张国峰编著电子工业出版社1997,C+语言程序设计郑莉等编著清华大学出版社1
2、999,Visual C+程序设计王育坚编著清华大学出版社,第1章C+初步知识,1.1从到1.2最简单的程序1.3C+对的扩充1.4程序的编写和实现1.5关于上要实践1.6C+程序的结构,1.1从到,机器语言(二进制码),汇编语言,20世纪50年代中期,FORTRAN语言,20世纪50年代中期,Algol语言,在计算机语言发展史上具有划时代的意义,引入了许多程序设计概念。如变量、数组、循环、分支等。,提出块(BeginEnd)思想,对数据进行保护,是一种初级封装。,20世纪60年代中期,Simula 67语言,面向对象语言的鼻祖,提出了对象、类的概念,并支持类的继承。,20世纪70年代中期,A
3、da语言,支持数据抽象类型的最重要的语言之一,但不完全支持继承。,20世纪70年代中期,Smalltalk语言,最有影响的面向对象语言之一,丰富了面向对象的概念。,20世纪80年代中期后出现C+等多种面向对象语言,1.1从到,C语言的主要特点是:1、C语言是一种结构化的程序设计语言,语言本身简洁、使用灵活方便。既适用于设计和编写大的系统程序,又适用于编写小的控制程序,也适用科学计算。,2、它既有高级语言的特点,又具有汇编语言的特点。运算符丰富,除了提供对数据的算术逻辑运算外,还提供了二进制的位运算。并且也提供了灵活的数据结构。用C语言编写的程序表述灵活方便,功能强大。用C语言开发的程序,其结构
4、性好,目标程序质量高,程序执行效率高。,3、程序的可移植性好。用C语言在某一种型号的计算机上开发的程序,基本上可以不作修改,而直接移植到其它型号和不同档次的计算机上运行。,4、程序的语法结构不够严密,程序设计的自由度大。这对于比较精通C语言的程序设计者来说,可以设计出高质量的非常通用的程序。但对于初学者来说,要能比较熟练运用C语言来编写程序,并不是一件容易的事情。与其它高级语言相比而言,调试程序比较困难。往往是编好程序输入计算机后,编译时容易通过,而在执行时还会出错。但只要对C语言的语法规则真正领会,编写程序及调试程序还是比较容易掌握的。,随着C语言应用的推广,C语言存在的一些缺陷或不足也开始
5、流露出来,并受到大家的关注。如:C语言对数据类型检查的机制比较弱;缺少支持代码重用的结构;随着软件工程规模的扩大,难以适应开发特大型的程度等等。,为了克服C语言本身存在的缺点,并保持C语言简洁、高效,与汇编语言接近的特点,1980年,贝尔实验室的Bjarne Stroustrup博士及其同事对C语言进行了改进和扩充,并把Simula 67中类的概念引入到C中。并在1983年由Rick Maseitti提议正式命名为C+(C Plus Plus)。后来,又把运算符的重载、引用、虚函数等功能加入到C+中,使C+的功能日趋完善。当前用得较为广泛的C+有:VC+ (Visual C Plus Plus
6、)、 BC+(Borland C Plus Plus)、AT&T C+等。,一、C+的起源,在C语言基础上为支持面向对象的程序设计研制的一个通用目的的程序设计语言;,由AT&T贝尔实验室Bjarne Stroustrup博士开发;,二、C+的特点,与C兼容,既保持了C的简洁、高效和接近汇编的特点,又比C更安全,结构化程度更高;,既支持面向过程的程序设计,又支持面向对象的程序设计;,注意其两面性,1.1从到,必须先研究事物,而后才能研究过程。必须先知道一个事物是什么,而后才能觉察这个事物中所发生的变化。路德维希费尔巴哈和德国古典文学的终结恩格斯,三、面向对象的方法,1.1从到,1.2最简单的C+
7、程序,例1.1:输出一行字符:“his is a C+ program.”#include /用cout输出时需要用此头文件using namespace std;/使用命名空间std(276) int main()coutThis is a C+ Program.n;/用cout的方法输出一行return 0;,1.2最简单的C+程序,分析:(1)main前的int ;return 0;表示正常返回(2)/*/ 多行注释,不能嵌套定义(3)cout(c、out),输出对流类的一个对象(4)头文件,i-o-stream,输入输出流类(5)using namespace std ;命名空间std
8、,表示要用到命名空间std的内容。(273页),1.2最简单的C+程序,cout:输出(1)coutab;(2)couta,b,c;(3)续行符“”(4)cout“hellon”;/原样输出字符串(5)cout“a=”aendl;,错,换行,1.2最简单的C+程序,例1.2:求a和b两个数之和。#include /用cout输出时需要用此头文件using namespace std;/使用命名空间std int main() /函数体开始int a,b,sum; /定义变量 cinab; /输入语句sum=a+b;/赋值语句couta+b=sumendl;/输出语句return 0; /如程序
9、正常结束,向操作系统返回一个零值参考页,1.2最简单的C+程序,#include using namespace std; int main() int max(int x,int y);int a,b,c;cinab;c=max(a,b);/函数调用coutmax=cendl;return 0;,例1.3:输入两个数x和y,求两数中的大者。,int max(int x,int y)int z;if(xy) z=x;elsez=y;return(z);,函数声明,1.2最简单的C+程序,例1.4:输入任意短语或句子,计算该短语包含多少个字(word)和字符(character)。注意:输入短语
10、时,必须在字和字之间只空一格。,面向过程的方法,#include #include void main() char ch; int wdcount,chcount; wdcount=1; chcount=0; printf(*:Please input any phrasen); while(ch=getche()!=r) chcount+;,1.2最简单的C+程序,if(ch= ) wdcount+; printf(n*:The number of word is %dn,wdcount); printf(n*:The number of char is %dn,chcount);,面向对
11、象的方法,#include #include class countpublic:,1.2最简单的C+程序(续),count(); void process(); void display();private: int wdcount,chcount;count:count() wdcount=1; chcount=0;void count:process(),1.2最简单的C+程序,char ch; cout*:Please input any phraseendl; while(ch=getche()!=r) chcount+; if(ch= ) wdcount+; coutendl;vo
12、id count:display() printf(n*:The number of word is %dn,wdcount);,1.2最简单的C+程序(续),printf(n*:The number of char is %dn,chcount);void main() count A; A.process(); A.display();,运行结果,*Please input any phrase.I am a teacher*:The number of word is 4*:The number of char is 15,1.2最简单的C+程序(续),一、面向过程与面向对象程序设计,是
13、一种数学思维或计算机思维方法,与人们认识世界的方法不同以不稳定的、多变的“过程”和“操作” 为中心来构造系统可重用性较差,是建立在认识方法学基础上的一项技术科学,比较自然地模拟了人类认识客观世界的方式;以相对稳定的“对象”和“数据结构”为中心来构造系统可重用性较好,面向过程程序设计,面向对象程序设计,一、面向过程与面向对象程序设计,面向过程程序设计,面向对象程序设计,P1,P2,P3,P4,P5,O1,O2,O3,O4,O5,Changing?,P6,一、面向过程与面向对象程序设计,面向过程程序设计,面向对象程序设计,P1,P2,P3,P5,O1,O2,O3,O4,O5,Changing?,P
14、6,O4,二、抽象在面向对象中的作用,、抽象的概念,抽象代表着一个对象的本质特征,这个特征将这个对象与所有其他种类的对象区别开来;,抽象是通过从特定的实例中抽取共同的性质以形成一般化的概念的过程;,抽象具有层次;,飞机,二、抽象在面向对象中的作用(续),、面向对象抽象的原理(面向对象计算的本质),数据抽象、行为共享、进化、确定性,1、数据抽象,为程序员提供了一种对数据和为操作这些数据所需要的算法的抽象;是面向对象方法的核心,包括:,模块化:构成了面向对象计算的本质;,信息隐藏:将一个模块的细节部分对用户隐藏起来,用户只能通过一个受保护的接口来访问某个模块,而不能直接访问一个模块内部的细节;,类
15、,公有成员,二、抽象在面向对象中的作用(续),2、行为共享,行为是由实体的外部接口定义的,行为共享指许多实体具有相同的接口,可增加系统的灵活性;,支持行为共享的方式,分类与层次分类,多态与继承,对象,公有成员函数名,二、抽象在面向对象中的作用(续),3、进化,需求进化(虚函数),进化式的问题求解(继承的构造函数),4、确定性,确保每个行为项都有一个正确的解释,系统不会因不能响应某一行为而失败;,确定性与类型的正确性有关;,三、面向对象计算的基本特征,面向对象系统的三要素:对象、类和继承;,(一)、对象,1、概念上,对象是代表着正在创建的系统中的一个实体;,2、实现形式上,对象是一个状态和操作(
16、或方法)的封装体;,3、对象的定义,状态:对象的状态由这个对象的属性和这些属性的当前值决定。属性是静态的,当前值是动态的;,一个对象具有状态、行为和标识。,三、面向对象计算的基本特征(续),行为:一个对象如何以状态变化和消息传递的形式进行作用和对外界进行反应。,一个对象的行为代表了这个对象的外部可见的和可测试的活动;,一个对象的状态代表着它的行为的累积结果;,标识:标识是一个对象固有的一种特性,该特性将这个对象与其他对象区别开来;,对象1,三、面向对象计算的基本特征(续),4、对象的分类,实体对象,界面对象,控制对象,按作用分类,存储信息的对象,支持系统的主要功能,5、对象的确认,发明对象:主
17、要是控制对象;,发现对象:主要是实体对象或界面对象;,(二)、类,1、什么是类,三、面向对象计算的基本特征(续),类是创建对象的样板,它包含着所创建对象的状态描述和方法的定义。类的完整描述包含了外部接口和内部算法以及数据结构的形式;,2、类是对象的抽象及描述,类中包含生成对象的具体方法,由一个类所创建的对象称为该类的实例;,3、类是抽象数据类型的实现,类是所有对象的共同的行为和不同的状态的集合体;,(三)、继承,继承提供了创建新类的一种方法,它的本质特征是行为共享;,三、面向对象计算的基本特征(续),四、C+语言中的抽象支持,控制抽象:用于排列任意动作的顺序的一种方法;,三种语句控制结构:顺序
18、、循环、分支,过程抽象(面向过程):对一组输入数据的一个计算动作和产生的输出结果;,数据抽象(面向对象):类是实现抽象数据类型的工具;,五、C+对面向对象程序设计方法的支持,C+支持数据封装(数据抽象),C+中,类是支持数据封装的工具,对象则是数据封装的实现;,C+中包含有私有、公有和保护成员,每个可能的消息对应一个相应的方法,方法通过函数来定义;,C+中通过发送消息来处理对象,C+中允许友元破坏封装性,C+中允许函数名和运算符重载,C+支持继承性,C+支持动态联编,六、C+对C语言的改进,增加了新的运算符::,new,delete等;,改进了类型系统,增加了安全性;,引进了引用概念;,允许函
19、数重载,允许设置缺省参数,提高了编程的灵活性;,引进了内联函数,提高了程序的效率;,可以根据需要随时对变量进行说明;,七、C+程序的编辑、编译和运行,(一)、编辑:源文件的扩展名为.cpp,(二)、编译,1、预处理过程,词法分析:单词,语法分析:构造程序的格式,符号表:程序中的各种符号及其属性,错误处理程序:,生成目标代码:目标文件扩展名.obj,2、编译 过程,3、连接过程:可执行文件扩展名.exe,三、运行,八、C+程序的编辑、编译和运行(续),编译过程:1)启动Visual C+,选择“文件”菜单中的“新建”命令,选择“文件”标签中的“C+ Source File”选项。2)选择源程序存
20、放的目录和输入源程序名,单击“确定”。3)在编辑器中编写源程序。4)单击F7或“编译”中的“重建全部”编译源程序,若编译通过,单击“执行”,在DOS屏上看结果,任按一键返回编辑器。,启动VC+编译系统,VC+编译系统界面,单击“File”菜单中“New”命令,选择“Files”选项卡,选择C+源文件命令,输入文件名,输入文件存放位置,单击选择驱动器,选择驱动器或目录,C+源文件编辑界面,输入C+源代码,可以将此源代码另起文件名存盘,选择编译命令,将源文件.cpp生成.obj文件,如果编译出错,会出现提示信息,指出错误的位置及种类,错误所在行,错误的原因,双击错误所在行,光标移到该行,生成可执行
21、文件,通过后单击该命令运行程序,运行结果显示在DOS屏上,注意:不可以在软盘上运行程序!应该把保存在软盘中的源文件拷贝到硬盘的目录中再运行!,源程序所在目录,未编译前,只有一个源程序,编译运行后,出现众多附加文件,同时,产生一个子目录Debug,Debug目录中,有obj和EXE文件,补: C+的字符集,大小写的英文字母:az,AZ,数字字符:09,特殊字符,词法记号,1、关键字(保留字),词法记号(续),2、标识符,组成规则:以字母或下划线开始,其后跟零个或多个字母、数字或下划线;,不能以数字开始,正确标识符:Result, DoubleList,_first, first_错误标识符:1f
22、irst,标识符的长度任意(受编译器限制);,区分字母的大小写;,不能使用系统的保留字;,例如:ADD, Add, add,词法记号(续),3、运算符,单目,双目,三目,运算符,5、分隔符,(),分隔符,:,4、各种文字,数字,字符文字,串文字,文字,布尔文字,;,空白,一、空白,包括:空格、制表符、换行符、注释,功能:指示词法记号的开始和结束位置;,二、注释,/*/,/,C+程序的结构,一、C+示范程序,#include void main() coutHello world! endl;,二、C+程序的组成,预处理命令,输入输出,函数,语句,变量,其他,I/O流库,提供所有的输入输出操作,
23、cout:流类对象:提取符例如:cinPlease inputtwo integers:;cinab;endl:换行;,1.3.1 C+的输入输出1、用cout进行输出举例:如果要输出a=2,b=3,c=4(假如已赋值)coutabc;cina;cinb;cinc;,1.3C+对C的补充,基本数据类型,一、基本数据类型,整型int,浮点型(实型),字符型char,基本数据类型,逻辑型bool,空值型void,单精度浮点数float,双精度浮点数double,用于函数和指针,基本数据类型(续),二、数据类型修饰符,signed:有符号,unsigned:无符号,short:短型,long:长型,
24、说明:,3) long修饰符还适用于双精度浮点数;,2) 上述修饰符均可用于整型和字符型;,1) 类型修饰符可以修饰除void、bool类型以外的其他类型;,基本数据类型(续),三、基本数据类型列表,基本数据类型(续),说明:,1) 表中的int可以省略,即在int之前有修饰符出现时,可以省略关键字int;,2) 单精度类型float、双精度类型double、长精度类型long double统称浮点类型;,3) char类型和各种int类型统称整型类型;char类型变量在内存中以它的ASCII码值的形式存储;,4) 字宽(字节)取决于操作系统和编译器的实现,可用sizeof验证;,常量,一、整
25、型常量(无小数部分),1、表示方法,十进制,八进制,十六进制,2、十进制表示,由09的数字组成,不能以0开始,无前缀,例:132, -345,3、八进制表示,由0 7的数字组成,以0为前缀,例:010, -0536,4、十六进制表示,由09的数字及A F的字母(大小写均可)组成,以0 x或0X为前缀,例:0 x7A, -0X3de,常量(续),5、说明:,1) 长整型用L(或l)做后缀表示。例如:32765L,793l;,2) 无符号型用U(或u)做后缀表示。例如:4352U,3100u;,3) unsigned long型用后缀U(或u)和L(或l)一起表示,L与U的先后顺序无关。例如:49
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 谭浩强版 ppt 课件
链接地址:https://www.31ppt.com/p-1371585.html