面向对象的程序设计(C++)PPT课件_第1页
面向对象的程序设计(C++)PPT课件_第2页
面向对象的程序设计(C++)PPT课件_第3页
面向对象的程序设计(C++)PPT课件_第4页
面向对象的程序设计(C++)PPT课件_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.,面向对象程序设计,任课教师:马钦,网站:1/c+,C+,.,课堂讲授部分,第一章面向对象的基本思想,第二章C语言的基本成分(自学),第三章C+对C的非面向对象扩充,第四章类,第五章继承性与派生类,第六章多态性,第七章C+的I/O流库,第八章类库和基于C+的良好OOP风格,.,教材、参考书与课时安排,教材C+程序设计教程钱能编著清华大学出版社参考书C+程序设计实验指导钱能编著清华大学出版社C+程序设计习题集钱能编著清华大学出版社课时安排授课:28学时上机:12学时书中所有程序下载网址,.,课程要求,课前请做好预习保持课堂安静,头脑清醒,思维活跃认真、独立、按时完成并提交作业重视上机实践,有效利用宝贵的上机时间掌握用TC3.0或者VC+6.0开发C+程序,考核形式,作业和实验任务必须按时完成,占总成绩的20%,期末考试成绩占总成绩的80%,.,.,第一章绪论,本章主要内容,.,计算机程序,计算机的工作是用程序来控制的程序是指令的集合。指令是计算机可以识别的命令。,计算机语言的发展,机器语言与汇编语言,由计算机硬件系统可识别的二进制指令组成的语言称为机器语言。计算机发展初期,软件工程师只能用机器语言编写程序。在人类自然语言和计算机编程语言间存在着巨大的鸿沟。汇编语言将机器指令映射为可被人读懂的助记符,如ADD、SUB等。编程语言与人类自然语言间的鸿沟略有缩小,因为它的抽象层次太低,程序员需要考虑大量的机器细节。,.,高级语言,高级语言屏蔽了机器的细节,提高了语言的抽象层次,程序中可以采用具有一定涵义的数据命名和容易理解的执行语句。这使得在书写程序时可以联系到程序所描述的具体事物。,计算机语言的发展,.,面向对象的语言,出发点:更直接地描述客观世界中存在的事物(对象)以及它们之间的关系。特点:是高级语言。将客观事物看作具有属性和行为的对象。抽象同一类对象的共同属性、行为,形成类。通过类的继承与多态实现代码重用,计算机语言的发展,优点:程序能够比较直接地反映问题域的本来面目,软件开发人员能够利用人类认识事物所采用的一般思维方法来进行软件开发。,.,程序设计方法的发展历程面向过程的程序设计方法,程序目的:用于数学计算主要工作:设计求解问题的过程缺点:庞大、复杂的程序难以开发和维护,面向对象的方法,面向过程的结构化程序设计方法,设计思路自顶向下、逐步求精,分而治之。程序结构:按功能划分为若干模块,形成树状结构。各模块间关系尽可能简单,功能上独立;模块内均是由顺序、选择和循环三种基本结构组成。模块化实现方法是使用子程序。,.,主功能,子功能1,子功能2,子功能3,分功能21,分功能22,/文件一数据定义与说明main().func1().,/文件二数据定义与说明func2().func3().,结构化程序设计程序=数据+函数(操作)+调用,.,程序设计方法的发展历程面向过程的结构化程序设计方法,优点:有效地将较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。,面向对象的方法,缺点:可重用性差、数据安全性差、难以开发图形界面的应用把数据和处理数据的过程分离为相互独立的实体。当数据结构改变时,所有相关的处理过程都要进行相应的修改。每种相对于老问题的新方法都要带来额外的开销。图形用户界面的应用,很难用过程来描述和实现,开发和维护都很困难。,.,程序设计方法的发展历程面向对象的方法,将数据及对数据的操作方法封装在一起,作为一个相互依存、不可分离的整体对象。对同类型对象抽象出其共性,形成类。类通过一个简单的外部接口,与外界发生关系。对象与对象之间通过消息进行通讯。,面向对象的方法,程序=类+对象+继承+消息,自然思维,对象为本,对象,对象,对象,对象,对象,.,程序设计方法的发展历程面向对象的方法,优点:程序模块间的关系更为简单,程序模块的独立性、数据的安全性就有了良好的保障。通过继承与多态性,可以大大提高程序的可重用性,使得软件的开发和维护都更为方便。,面向对象的方法,.,面向对象的基本概念对象,对象:可以是有形的(汽车),也可是无形的(比如一项计划)。,面向对象的方法,对象:对问题领域内人、物、事情等的抽象,是一组属性(状态、特征、成员)和在这些属性上的行为(修改属性、访问属性、执行命令)的封装体;,是用来构成系统的一个基本单位。对象由一组属性和一组行为构成。属性:用来描述对象静态特征的数据项。行为:用来描述对象动态特征的操作序列。,.,面向对象的基本概念类,分类:人类的思维方法;分类原则:抽象忽略事物非本质特征,只注意与当前目标有关的本质特征,找出事物的共性,把具有共同性质的事物划分为一类,得出一个抽象的概念。,面向对象的方法,抽象:现实中的物体抽象成对象;现实世界的物体之间的关系抽象成软件系统中对象之间的关系;具有共同特征的对象抽象成类;具有共同特征的类抽象出基类和派生类,.,面向对象的基本概念类,面向对象方法中的类具有相同属性和服务的一组对象的集合为属于该类的全部对象提供了抽象的描述,包括属性和行为两个主要部分。,面向对象的方法,类:具有相似特征对象的抽象。类是抽象的,对象是具体的;类是类型,对象是变量;类是模型,对象是实例,不同程度的抽象可得到不同层次的分类,运输工具,火车,汽车,飞机,卡车,轿车,轮船,车辆,.,面向对象的基本概念封装,把对象的属性和操作结合成一个独立的系统单位。尽可能隐蔽对象的内部细节。对外形成一个边界(或者说一道屏障),只保留有限的对外接口使之与外部发生联系。,面向对象的方法,封装(类自成一体)和数据隐藏,封装的作用:使对象能够集中而完整地描述并对应一个具体的事物。体现了事物的相对独立性,使对象外部不能随意存取对象的内部数据,避免了外部错误对它的“交插感染”。对象的内部修改对外部的影响很小,减少了修改引起的“波动效应”。,.,面向对象的基本概念继承,继承对于软件复用有着重要意义,是面向对象技术能够提高软件开发效率的重要原因之一。定义:特殊类的对象拥有其一般类的全部属性与服务,称作特殊类对一般类的继承。例:轮船作为一个一般类,客轮便是一个特殊类。,面向对象的方法,即若类A的全部对象是类B的对象,而类B中存在不属于类A的对象,则A是B的特殊类,B是A的一般类。,.,面向对象的基本概念多态性,多态是指在一般类中定义的属性或行为,被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一个属性或行为在一般类及其各个特殊类中具有不同的语义。例如:数的加法-实数的加法-复数的加法,面向对象的方法,面向对象不仅是具体的软件开发技术,而是一整套关于如何看待软件系统与现实世界关系,以何种观点来研究问题并进行求解,及如何进行系统构造的软件方法学。用对象、类、继承、封装、消息、多态性等基本概念进行程序设计,.,.,面向对象的软件工程,面向对象的软件工程是面向对象方法在软件工程领域的全面应用。它包括:面向对象的分析(OOA)面向对象的设计(OOD)面向对象的编程(OOP)面向对象的测试(OOT)面向对象的软件维护(OOSM),面向对象的软件开发,.,系统分析,系统分析阶段应该扼要精确地抽象出系统必须做什么,但是不关心如何去实现。面向对象的系统分析,直接用问题域中客观存在的事物建立模型中的对象,对单个事物及事物之间的关系,都保留他们的原貌,不做转换,也不打破原有界限而重新组合,因此能够很好地映射客观事物。,面向对象的软件开发,.,设计,针对系统的一个具体实现运用面向对象的方法。其中包括两方面的工作:把OOA模型直接搬到OOD,作为OOD的一部分针对具体实现中的人机界面、数据存储、任务管理等因素补充一些与实现有关的部分。,面向对象的软件开发,.,编程,OOP工作就是用一种面向对象的编程语言把OOD模型中的每个成分书写出来,是面向对象的软件开发最终落实的重要阶段。,面向对象的软件开发,.,测试,测试的任务是发现软件中的错误。在面向对象的软件测试中继续运用面向对象的概念与原则来组织测试,以对象的类作为基本测试单位,可以更准确的发现程序错误并提高测试效率。,面向对象的软件开发,.,维护,将软件交付使用后,工作并没有完结,还要根据软件的运行情况和用户的需求,不断改进系统。使用面向对象的方法开发的软件,其程序与问题域是一致的,因此,在维护阶段运用面向对象的方法可以大大提高软件维护的效率。,面向对象的软件开发,.,C+语言的产生,C+是从C语言发展演变而来的,首先是一个更好的C。引入了类的机制,最初的C+被称为带类的C。1983年正式取名为C+。C+语言的标准化工作从1989年开始,于1994年制定了ANSIC+标准草案。以后又经过不断完善,成为目前的C+。,C+语言程序的开发,.,C+的特点,全面兼容C它保持了C的简洁、高效和接近汇编语言等特点对C的类型系统进行了改革和扩充C+也支持面向过程的程序设计,不是一个纯正的面向对象的语言支持面向对象的方法,C+语言程序的开发,.,/*/*ch1_1.cpp#include/预处理命令,以#开始,常见voidmain()coutb;result=3*a-2*b+1;cout“resultis”resultab;c=max(a,b);couty)returnx;elsereturny;,.,C+程序的结构与基本组成简单的C+程序,是由若干函数构成的,有且仅有一个名称为main的函数存在,下图C+程序的基本结构:,1声明区处在程序文件的所有函数的外部。(1)包含头文件:如#include(2)宏定义:如#definePI3.1415926(3)函数声明:如voidprint();(4)全局变量声明:如floatH=2.58;,.,2主程序区:以main()函数开始,是整个程序运行的入口,该函数中可能包含的内容主要有:(1)局部变量的声明:如:inti=1;(2)函数调用:如:y=sin(x);(3)一般运算:如:a=b+c+d/3;(4)结构控制:如:if(ab)c=a;,3函数定义区:除了main函数之外,还可以包含其它的函数,每个函数是由函数说明和函数体两部分构成的。,.,.,从上例可以看出:(1)C语言中原有规则和语句在C+中仍可继续使用,但C+又增添了很多新的风格。(2)一个C+的程序是由一到若干个函数构成的,但其中必须有且仅有一个名称为main的函数存在。(3)不管一个程序中有多个函数,只有main函数整个程序运行时的入口,程序运行时从此函数开始执行。但在程序中,main函数所处的位置可以任意。(4)一个C+的函数是由两部分构成的,即函数的说明部分和函数体,函数的说明部分包括了函数的返回值的类型、函数的名称、圆括号、形参及形参的类型说明。函数体由一对大括号括起来,其内容是由若干条语句构成,函数体的内容决定了该函数的功能。,.,(5)C+对程序中的名称是大小写“敏感”的,除特殊情况下,应一律小写。(6)程序中的注释:可以用/*/或/(单行注释)对程序中的内容进行注释。二者的区别在于,采用/*/方法时,注释可以写成多行,而采用/方法时,注释只能写成一行,它可单独占一行,也可写在某行程序代码的末尾。(7)数据输出:除了使用printf()函数,还可使用功能更强大、更方便的cout对象进行输出数据。格式如下:cout数据1数据2数据n如:上例中的语句couts“is”ibottomheight;area=(top+bottom)*height/2;coutTheareais:areaendl;,.,选择题1面向对象程序设计是A与实现的新方法。A软件系统设计B系统软件设计C应用软件设计D支

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论