面向对象的程序设计语言-C-

上传人:石磨 文档编号:309718766 上传时间:2022-06-13 格式:PPT 页数:284 大小:653KB
返回 下载 相关 举报
面向对象的程序设计语言-C-_第1页
第1页 / 共284页
面向对象的程序设计语言-C-_第2页
第2页 / 共284页
面向对象的程序设计语言-C-_第3页
第3页 / 共284页
面向对象的程序设计语言-C-_第4页
第4页 / 共284页
面向对象的程序设计语言-C-_第5页
第5页 / 共284页
点击查看更多>>
资源描述

《面向对象的程序设计语言-C-》由会员分享,可在线阅读,更多相关《面向对象的程序设计语言-C-(284页珍藏版)》请在金锄头文库上搜索。

1、返回返回第第2 2章章 C+ C+语言基础语言基础本章是学习C+语言的基础,包括以下几个方面:1结构化程序设计方法与面向对象程序设计方法的各自特点、区别和相互联系。2面向对象的程序设计方法中的有关概念,如类、对象、封装、继承、消息和多态性等。3C+程序的基本组成和框架结构。4掌握C+语言中的基本数据类型、各种运算符、表达式。5C+数据输入流对象cin和输出流对象cout的使用。6程序的3种基本结构7构造数据类型,如数组、结构体、指针等的定义方法、特点和使用方法。7函数的定义、调用及函数调用过程中的参数传递的机理和程序执行流程。8引用的概念及其定义和使用方法。1返回返回2.1 从面向过程的程序设

2、计到面向对象的程序设计从面向过程的程序设计到面向对象的程序设计2.1.1 传统的结构化程序设计(传统的结构化程序设计(Structured Programming-SP)方法)方法 1 1使用使用SPSP方法设计程序的步骤方法设计程序的步骤在数据处理过程中,采用的是自顶向下、分而治之的方法,将整个程序按功能划分为几个可独立编程的子过程模块,每一子模块完成指定的子任务,并且提供一个清晰、严格的调用界面,主过程通过调用各子过程完来成全部处理工作 。数据声明数据处理结果输出2返回返回2 2SPSP方法的特点方法的特点优点:(1)这种程序设计方法力求算法描述准确。(2)对每一子过程模块容易进行程序正确

3、性证明。缺点:(1)这种程序设计方法本质上是面向“过程”的,而“过程”和“操作”又是不稳定和多变的,因此不能直接反映人类求解问题的思路。(2)程序代码可重用性差。程序中除少数标准库函数外,每设计一个程序时,程序员几乎从零做起。即使重用代码,通常也是通过拷贝或编辑重新生成一份。(3)维护程序的一致性困难。该种方法将数据与对数据进行处理的程序代码分离。2.1 从面向过程的程序设计到面向对象的程序设计从面向过程的程序设计到面向对象的程序设计3返回返回2.1.2面向对象的程序设计(Object-OrientedProgramming-OOP)方法1. 1. 面向对象的有关概念面向对象的有关概念 面向对

4、象的程序设计方法强调直接以问题域(现实世界)中的事物为中心来思考和认识问题,并按照这些事物的本质特征把它们抽象为对象,以作为构成软件系统的基础。( 1 1) 对对 象象 ( ObjectObject) : 每 个 对 象 都 具 有 属 性(Attribute)和方法(Method)这两方面的特征。对象的属性描述了对象的状态和特征,对象的方法说明了对象的行为和功能,并且对象的属性值只应由这个对象的方法来读取和修改,两者结合在一起就构成了对象的完整描述。 2.1 从面向过程的程序设计到面向对象的程序设计从面向过程的程序设计到面向对象的程序设计4返回返回(2 2)类()类(ClassClass):

5、):具有相似属性和行为的一组对象,就称为类。可见,有了类的概念以后,就可以对具有共同特征的事物进行统一描述。(3 3)封装()封装(EncapsulationEncapsulation):):封装把对象的属性和方法看成了一个密不可分的整体,从而使对象能够完整地描述并对应于一个具体事物。(4 4)继承()继承(InheritanceInheritance):):将客观事物进行归类是一个逐步抽象的过程,反之,将类进行层层分类便是一个概念逐渐细化的过程。在面向对象的程序设计中,允许在已有类的基础上通过增加新特征而派生出新的类,这称为继承。其原有的类称为基类(base class),而新建立的类称为派

6、生类。2.1 从面向过程的程序设计到面向对象的程序设计从面向过程的程序设计到面向对象的程序设计5返回返回(5 5)消息()消息(MessageMessage):):在面向对象的程序设计中,由于对象描述了客观实体,它们之间的联系通过对象间的联系来反映。当一个对象需要另外一个对象提供服务时,它向对方发出一个服务请求,而收到请求的对象会响应这个请求并完成指定的服务。这种向对象发出的服务请求就称为消息。(6 6)多态性()多态性(PolymorphismPolymorphism):):多态性是面向对象的另一重要特征。在通过继承而派生出的一系列类中,可能存在一些名称相同,但实现过程和功能不同的方法(Me

7、thod)。所谓多态性是指当程序中的其他部分发出同样的消息时,按照接收消息对象的不同能够自动执行类中相应的方法。其好处是,用户不必知道某个对象所属的类就可以执行多态行为,从而为程序设计带来更大方便。2.1 从面向过程的程序设计到面向对象的程序设计从面向过程的程序设计到面向对象的程序设计6返回返回2. 2. 面向对象的程序设计方法(面向对象的程序设计方法(OOPOOP方法)方法)这种方法将设计目标从模拟现实世界的行为转向了模拟现实世界中存在的对象及其各自的行为。在OOP中,将“对象”作为系统中最基本的运行实体,整个程序即由各种不同类型的对象组成,各对象既是一个独立的实体,又可通过消息相互作用,对

8、象中的方法决定要向哪个对象发消息、发什么消息以及收到消息时如何进行处理等。2.1 从面向过程的程序设计到面向对象的程序设计从面向过程的程序设计到面向对象的程序设计方法数据消息消息7返回返回3 3OOPOOP方法的特点方法的特点(1)OOP以“对象”或“数据”为中心。由于对象自然地反映了应用领域的模块性,因此具有相对稳定性,可以被用作一个组件去构成更复杂的应用,又由于对象一般封装的是某一实际需求的各种成分,因此,某一对象的改变对整个系统几乎没有影响。(2)引入了“类”(class)的概念。类与类以层次结构组织,属于某个类的对象除具有该类所描述的特性外,还具有层次结构中该类上层所有类描述的全部性质

9、,OOP中称这种机制为继承。(3)OOP方法的模块性与继承性,保证了新的应用程序设计可在原有对象的数据类型和功能的基础上通过重用、扩展和细化来进行,而不必从头做起或复制原有代码,这样,大大减少了重新编写新代码的工作量,同时降低了程序设计过程中出错的可能性,达到了事半功倍的效果。2.1 从面向过程的程序设计到面向对象的程序设计从面向过程的程序设计到面向对象的程序设计8返回返回2.1.3 2.1.3 面面向向对对象象的的程程序序设设计计方方法法与与结结构构化化程程序序设设计计方方法法的比较的比较(1)传统的结构化程序设计方法以过程为中心构造应用程序,数据和处理数据的过程代码是分离的、相互独立的实体

10、,设计出的程序可重用代码少,且当代码量增加时维护数据和代码的一致性困难。(2)面向对象程序设计方法中,对象所具有的封装性和继承性使得代码重用成为可能,并大大减少了程序出错的可能性。(3)面向对象方法吸收了结构化程序设计方法的优点,同时引入了新概念、新机制并建立了比传统方法更高层次的抽象。2.1 从面向过程的程序设计到面向对象的程序设计从面向过程的程序设计到面向对象的程序设计9返回返回2.2.1 2.2.1 从从C C语言到语言到C+C+语言语言 C语言以其如下独有的特点风靡了全世界:(1)语言简洁、紧凑,使用方便、灵活。C语言只有32个关键字,程序书写形式自由。(2)丰富的运算符和数据类型。(

11、3)可以直接访问内存地址,能进行位操作,使其能够胜任开发操作系统的工作。(4)生成的目标代码质量高,程序运行效率高。(5)可移植性好。2.2 C+2.2 C+程序的基本组成程序的基本组成10返回返回2.2 C+2.2 C+程序的基本组成程序的基本组成 局限性:(1)数据类型检查机制相对较弱,这使得程序中的一些错误不能在编译阶段被发现。(2)C本身几乎没有支持代码重用的语言结构,因此一个程序员精心设计的程序,很难为其它程序所用。(3)当程序的规模达到一定程度时,程序员很难控制程序的复杂性。11返回返回2.2 C+2.2 C+程序的基本组成程序的基本组成C+包含了整个C,C是建立C+的基础。C+包

12、括C的全部特征和优点,同时添加了对面向对象编程(OOP)的完全支持。1980年,贝尔实验室的Bjarne Stroustrup开始对C进行改进和扩充。1983年正式命名为C+。在经历了3次C+修订后,1994年制定了ANSI C+ 标准的草案。以后又经过不断完善,成为目前的C+。C+仍在不断发展中。美国微软公司现已准备推出C#(C Sharp)语言,来代替C+语言。12返回返回2.2.2 C+程序的结构与基本组成程序的结构与基本组成一个简单的C+程序,是由若干个函数构成的,其中有且仅有一个名称为main的函数存在,下图说明了C+程序的基本框架结构:2.2 C+2.2 C+程序的基本组成程序的基

13、本组成声声明明区区#include:函数声明定义全局变量主主程程序序区区类型main(参数行)程序主体;函函数数定定义义区区函数定义函数主体;13返回返回1声明区声明区处在程序文件的所有函数的外部。(1)包含头文件:如#includeiostream.h(2)宏定义:如#definePI3.1415926(3)类定义:如classname;(4)结构体定义:如structrecord;(5)函数声明:如voidprint();(6)全局变量声明:如floatH=2.58;(7)条件编译:如#ifdef等。2.2 C+2.2 C+程序的基本组成程序的基本组成14返回返回2主程序区主程序以main

14、()函数开始,是整个程序运行的入口,该函数中可能包含的内容主要有:(1)局部变量的声明:如:inti=1;(2)函数调用:如:y=sin(x);(3)一般运算:如:a=b+c+d/3;(4)结构控制:如:if(ab)c=a;(5)对象与结构的处理。(6)文件的处理等。2.2 C+2.2 C+程序的基本组成程序的基本组成15返回返回图2.3 C+函数的组成4 4程序举例程序举例2.2 C+2.2 C+程序的基本组成程序的基本组成函数定义区函数说明intmax(inta,intb)函数体intc;c=a+b;return(c);3函数定义区 程序中除了main函数之外,还可以包含其它的函数,每个函

15、数是由函数说明和函数体两部分构成的。如图2.3所示:16返回返回2.2 C+2.2 C+程序的基本组成程序的基本组成声声明明区区#includeiostream.h#includestdio.hvoidprint();/函数声明主主程程序序区区voidmain()inti;chars80;print();couts;couti;coutsisiyearsold.;函函数数定定义义区区voidprint()printf(printfisalsocanbeusedn);17返回返回上例程序结构可写为如下程序:【例例2-12-1】一个简单的C+程序。/ThisisfirstC+program/*C语

16、言的某些特征仍可沿用*/#includeiostream.h#includestdio.hvoidprint();/函数声明voidmain()inti;chars80;2.2 C+2.2 C+程序的基本组成程序的基本组成18返回返回print();couts;couti;/验证结果coutsisiyearsold.;voidprint()printf(printfisalsocanbeusedn);2.2 C+2.2 C+程序的基本组成程序的基本组成19返回返回从上例可以看出:(1)C语言中原有的规则和语句在C+中仍可继续使用,但C+又增添了很多新的风格。(2)一个C+的程序是由一到若干个函数构成的,但其中必须有且仅有一个名称为main的函数存在。(3)不管一个程序中有多个函数,只有main函数整个程序运行时的入口,程序运行时从此函数开始执行。但在程序中,main函数所处的位置可以任意。(4)一个C+的函数是由两部分构成的,即函数的说明部分和函数体,函数的说明部分包括了函数的返回值的类型、函数的名称、圆括号、形参及形参的类型说明。函数体由一对大括号括起来,其内容是由若干条语句2.2

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

当前位置:首页 > 办公文档 > 教学/培训

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