第1章面向对象程序设计概论课件

PPT
  • 阅读 37 次
  • 下载 0 次
  • 页数 76 页
  • 大小 1.344 MB
  • 2022-11-24 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
第1章面向对象程序设计概论课件
可在后台配置第一页与第二页中间广告代码
第1章面向对象程序设计概论课件
可在后台配置第二页与第三页中间广告代码
第1章面向对象程序设计概论课件
可在后台配置第三页与第四页中间广告代码
第1章面向对象程序设计概论课件
第1章面向对象程序设计概论课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 76
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
文本内容

【文档说明】第1章面向对象程序设计概论课件.ppt,共(76)页,1.344 MB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-44842.html

以下为本文档部分文字说明:

2011.9面向对象程序设计面向对象程序设计概论1从C到C++2类与对象3继承机制4多态性和虚函数5运算符重载6模板7I/O流8异常处理9目录第1章面向对象程序设计概论1.1程序设计方法1.2面向对象程序设计的基本概念1.3面向对象程序设计语言1.

4C++对面向对象程序设计方法的支持1.5C++程序的实现1.1程序设计方法•1.1.1结构化程序设计方法•1.1.2面向对象的程序设计方法结构化程序设计方法:强调程序结构的规范性,强调程序设计的自顶向下,逐步求精的演化过程。在这种方法中,待解

问题和程序设计语言中的过程紧密相联。1.1.1结构化程序设计方法1.1.1结构化程序设计方法例如要开发一个成绩管理系统,由于问题较复杂,我们将待解的问题分解成若干子问题:–输入成绩–处理成绩–打印成绩待解问题将对应到main()函数,每个子问题对应到

main()的调用函数随着程序规模与复杂性的增长,面向过程的结构化程序设计方法存在明显的不足之处:数据安全性问题可维护性及可重用性差图形用户界面的应用程序,很难用过程来描述和实现,开发和维护也都很困难。1.1.1结构化程序设计方法在结构化程序设计方法中,程序可表示为:程序=数据结构+算法即

程序的要素是数据结构和算法,数据结构是指利用计算机的离散逻辑来量化表达需要解决的问题,而算法则研究如何高效而快捷地组织解决问题的具体过程。1.1.2面向对象程序设计方法【例1.1】用C++语言描述,用结构化程序设计方法计算矩形的面积。1.1

.2面向对象程序设计方法#include<iostream>usingnamespacestd;intmain(){floatlength,width,area;//定义变量长、宽、面积cout<<"pleaseinputleng

thandwidth"<<endl;cin>>length>>width;//输入长、宽值area=length*width;//计算面积cout<<area<<endl;//输出面积return0;}在面向对象的程序设计方法中,对象是数据结构和算法的封装体。

根据这个定义,对象是计算机内存中的一块区域。在对象中,不但存有数据,而且存有代码,使得每个对象在功能上相互之间保持相对独立。当然,对象之间存在各种联系,但它们之间只能通过消息进行通信。程序可表示为:程序=

对象+消息1.1.2面向对象程序设计方法面向对象程序设计(Object-OrientedProgramming)从计算机软件设计的角度,引入类和对象的概念,将客观世界和主观世界中的实体和问题直接映射到

计算机世界的程序空间。这就是面向对象方法的基本出发点。计算机世界(程序空间)主观世界(问题空间)客观世界(真实空间)现实问题空间面向对象解空间物质:一辆红色的小车,车牌“888”意识:小汽车具体事物:一个对象——小汽车的实例抽象概念:小汽车类汽车类汽车对

象1汽车对象2汽车对象3汽车对象4可以将现实世界中的对象经过抽象,映射为软件中的对象。对象在软件中是通过一种抽象数据类型来描述的,这种抽象数据类型称为类(Class)【例1.2】用C++语言描述,用面向对象程序设计方法计算矩形的面积。1.1.2面向对象程序设计方法//定

义矩形类#include<iostream>usingnamespacestd;classRectangleArea{public:voidSetData(floatL,floatW);//输入长、宽值floatCompueterArea();//计算面积voidOutputAr

ea();//输出面积private:floatlength,width,area;//定义长、宽、面积};通过这个程序可以知道面向对象程序程序的基本结构。一般情况下,面向对象程序都是由三个部分来构成:类的声明、类的成员的实现和主函数。可见,在面向对象程序设计中,它着重于类的设计。类正是

面向对象语言的基本程序模块,通过类的设计,来完成实体的建模任务。1.1.2面向对象程序设计方法程序例1_2比程序例1_1看起来要烦琐一些。但是,如果以RectangleArea类为基础,通过继承,可以很方便地派生出长方体等新的几何体,实现代码重用。面向对象

程序设计方法提供了软件重用、解决大问题和复杂问题的有效途径,具有抽象性、封装性、继承性和多态性等特点。1.1.2面向对象程序设计方法1.2面向对象程序设计的基本概念•1.2.1抽象•1.2.2封装•1.2.3消息•1.2.4继承•1.2.5多态抽象就是忽略事

物中与当前目标无关的非本质特征,而强调与当前目标有关的本质特征,从而找出事物的共性,并把具有共性的事物划为一类,得到一个抽象的概念。1.2.1抽象面向对象方法中的抽象:指对具体问题(对象)进行概括,抽出一类对象的公共性质并加

以描述的过程。1.2.1抽象描述某类对象共有的属性或状态描述某类对象的共有的行为或功能特征。对象数据抽象行为抽象抽象有机结合类进一步抽象自行车对象数据抽象自行车类属性:架子尺寸车轮尺寸颜色原材料功能:转弯移动修理1.2.1抽象行为抽象数据抽象:floatl

ength,width,Area;行为抽象:SetData(floatL,floatW);CompueteArea();OutputArea();分析程序清单Li1_2:如果不是计算矩形的面积,关注的特征可能是颜色、大小等。由此可

见,对于同一个研究对象,由于所研究问题的侧重点不同,就可能产生不同的抽象结果。1.2.1抽象在日常生活中,我们往往只想知道某件物品的功能,而不关心它是怎么工作的。对于程序设计亦是如此,当人们面对某段程序时,只关心它的执行结果,而不关心实现过程以及过程中所用到的数

据。封装恰好满足了这一需求。1.2.2封装1.2.2封装面向对象方法中的封装:就是将抽象出来的对象的属性和行为结合成一个独立的单位,并尽可能隐蔽对象的内部细节。封装有两个含义:(1)把对象的全部属性和行为结合在一起,形成一个不可分割的独立单位。对象的私有属性只能由这

个对象的行为来读取和修改;(2)尽可能隐蔽对象的内部细节,对外形成一道屏障,通过公有行为充当外部接口。内外机械零件动作调节旋钮读表盘1.2.2封装例如程序段Li1_2中的类RectangleArea就是在抽象的基础上,将矩形的数据和功能结合起来而构成的封装

体。声明的私有成员length、width和Area外部无法直接访问,外界可通过公有行为SetData()、CompueteArea()和OutputArea()与类RectangleArea发生联系。1.2.2封装消息:是面向对象程序设计用来描述对象之间通信的机制。一个消

息就是一个对象要求另一个对象实施某种操作的一个请求。前面所提到的“接口”规定了能向某一对象发出什么请求。也就是说,类对每个可能的请求都定义了一个相关的函数,当向对象发出请求时,就调用这个函数。这个过程通常概

括为向对象“发送消息”(提出请求),对象根据这个消息决定做什么(执行函数代码)。1.2.3消息发送消息接收并响应消息转向1.2.3消息发送一条消息至少要包括说明接受消息的对象名、发送给该对象的消息名(即对象名、方法名)。一般还要对参数加以说明,参数可以是认识

该消息的对象所知道的变量名,或者是所有对象都知道的全局变量名。例:老板对下属说:“明天早上八点以前把有关饮料的市场调查报告放到我的办公桌上”。•接受消息的对象名•发送给该对象的消息名(对象名、方法名、参数)1.2.3消

息1.2.4继承在客观世界中,存在着一般和特殊的关系,特殊具有一般的特性,同时又有自己的新特性。运用抽象的原则就是舍弃对象的特殊性,提取其一般性,从而得到适合一个对象集的类。如果在这个类的基础上,再考虑抽象过程中被舍弃的一部分对象的特性,则可形成一个新的类,这个类具有前一个类的全部特

征,又有自己的新特征,形成一种层次结构,即继承结构。1.2.4继承面向对象程序设计中利用继承机制将这种关系模型化。继承就是指特殊类的对象拥有其一般类的属性和行为。汽车客车货车小轿车大客车载货载人小,速度快大,速度慢1.2.4继承在软件开发过程中,继承进一步实现了软件模块的可重用

性。继承意味着“自动地拥有”,即特殊类中不必重新定义已在一般类中定义过的属性和行为,而是自动地、隐含地拥有其一般类的属性与行为。当这个特殊类又被它更下层的特殊类继承时,它继承来的和自己定义的属性和行为又被下一层的特

殊类继承下去。不仅如此,如果将开发好的类作为构件放到构件库中,在开发新系统时便可直接使用或继承使用。1.2.5多态面向对象的通信机制是消息,一个消息可以产生不同的响应效果,这种现象叫做多态。即一个名字,多种语义;或相同界面,多种实现。1.2.5多态例如,如果发送消息“双击”,不

同的对象就会有不同的响应。•“文件夹”对象收到双击消息后,会打开该文件夹,•“音乐文件”对象收到双击消息后,会播放该音乐。显然,打开文件夹和播放音乐需要不同的函数体。但是,它们可以被同一条消息“双击”所引发。这就是多态。例1:一个

经理第二天要到某地参加某个会议,他会把这同一个消息告诉给不同的人:他的夫人、秘书、下属,这些人听到这个消息后,会有不同的反应:夫人为他准备行装,秘书为他安排机票和住宿,下属为他准备相应的材料。语文、数学、英语、政

治、物理、化学、生物高中生计算平均成绩大学生高数、英语、计算机、线性代数例2:•1.3.1混合型的OOP语言C++•1.3.2纯OOP语言Java1.3面向对象程序设计语言1.3.1混合型的OOP语言C++混合型程序设计语言兼有同时支持面向过程的程序设计和支

持面向对象的程序设计的特点,C++语言是这类语言的典型代表。1.3.1混合型的OOP语言C++C++语言具有4个方面的优点:降低程序开发和维护的成本。与C兼容,但比用C语言编写的程序更有效率。允许程序员更自由地使用各种库。C++的异常处理机制能够保

证在运行期间检查到错误,并转至相应的处理程序,减少了代码的长度和复杂度。1.3.2纯OOP语言JavaJava是一种具有“简单、面向对象的、分布式、解释型、健壮、安全、与体系结构无关、可移植、高性能、多线程

和动态执行”等特性的语言。其次,它最大限度地利用了网络,Java的应用程序(Applet)可在网络上传输,可以说是网络世界的通用语言;另外,Java还提供了丰富的类库,使程序设计者可以方便地建立自己的系统。因此Java具有强大的图形、图像、动画、音频

、视频、多线程及网络交互能力,使其在设计交互式、多媒体网页和网络应用程序方面大显身手。Java是C++的简化和改进,因而C++程序员可以很快掌握Java编程技术。1.4C++对OOP方法的支持C++把问题域中的事物抽象成对象(Object),用数据成员描述该对象的静态特征(属性),用成员函

数来刻画该对象的动态特征(行为)。抽象性继承性封装性多态性C++C++语言允许单继承和多继承。被继承的类称为基类或父类,派生的新类称为派生类或子类。抽象性继承性封装性多态性C++1.4C++对OOP方

法的支持1.4C++对OOP方法的支持在C++语言中,类是支持数据封装的工具,对象是数据封装的实现。C++将数据和相关操作封装在类中,同时通过访问权限来控制对内部数据的访问。抽象性继承性封装性多态性C++1.4C++对OOP方法的支持C

++多态分为编译时多态和运行时多态。对编译时多态的支持是通过函数重载和运算符重载实现的;对运行时多态的支持是通过继承和虚函数来实现的。抽象性继承性封装性多态性C++1.5C++程序的实现•1.5.1编辑C++源程序

•1.5.2编译和连接源程序•1.5.3运行源程序从C++源程序到可执行程序的步骤:编辑、预处理、编译、连接、调试1.5C++程序的实现编辑是将源程序输入计算机,生成后缀为.cpp的文件。编译(compile)是将程序的源代码转换成机器语言代

码。编译后,会生成一个.obj的目标文件。目标代码需要相互衔接成为一个适应一定操作系统环境的程序整体,即连接(link)。C++程序通常是通过同时连接一个或多个目标文件以及一个或几个库而创建的。1.5C++程序的实

现C++源程序C++预处理后的C++源程序目标程序可执行程序运行程序员调试出错信息编辑器预处理器C++编译器链接器1.5C++程序的实现在VisualC++6.0运行环境中建立C++应用程序的过程演示1.5C++程序的实现􀁺(1)启动VisualC++6.0,打开File菜单

,执行New菜单命令,出现New对话框。在Project页面窗口中选择Win32ConsoleApplication选项,创建一个Win32控制台应用程序。在Projectname编辑框中输入项目名称tc1,在Location编辑框中输入保存项目的路径。􀁺(2)在Win32ConsoleA

pplication-Step1of1对话框中设置控制台应用程序的类型。这里我们要创建一个空项目程序,因此选择第一项Anemptyproject,单击Finish按钮,出现NewProjectInformation对话框,单击OK按钮,将生成一个空项目。(3)向项目tc1中添加源程序文件。

打开Project菜单,选择AddtoProject|New,出现如图1-3所示的添加项目文件对话框。在的Files页面窗口中选择C++SourceFile,在右边的File编辑框中输入C++源程序文

件名称cp1,在Location编辑框中输入保存该文件的路径。单击OK按钮,在主窗口DeveloperStudio左边的项目工作区窗口的SouceFiles文件夹目录下出现cp1.cpp文件,双击该文件,在右边的编辑窗口中输入源程序代码。􀁺(4)编译运行源程序cp1.cpp。打开Buil

d菜单,选择Buildcp1.exe命令项或按快捷键F7,系统开始对项目cp1进行编译、连接,同时在输出窗口中显示出编译的内容,当出现Hello.exe–0error(s),0warning(s)字样时,表示cp1.exe可执行文件已经正确

无误地生成了。在Build菜单中选取Executecp1.exe命令项或按快捷键Ctrl+F5,就可以运行刚刚生成的cp1.exe。建立新工程(Project)建立新文件(File)编辑、编译及运行程序实例程序:/*从键盘接收两个整数,输出显示其中的较大数。*/#include<iostream.

h>voidmain(){inta,b,max;//声明三个整型变量cout<<"Pleaseentertwointegers:";//提示用户输入cin>>a>>b;//从键盘接收两个整数赋给a、bif(a>=b)max=a;

//若a>b则将a赋给maxelsemax=b;//否则将b赋给maxcout<<"Themaxis:"<<max<<endl;//输出max并换行}.cpp文件.h文件.exe文件存入软盘将结果关闭工程,准备输入下一个程序ALTCOMAPP向导(com应用)资源类创建向导普通a

pp向导(app就是application应用程序)数据类程序开发和设计附加向导扩展存储程序向导api扩展向导制作文件控制向导mfcapp向导(用于生成dll)mfcapp向导(用于生成exe)新建数据类型向导通用程序win32应用程序(做有界面的)win32控

制台应用程序(黑框)win32动态链接库win32静态链接库比较Win32Application和Win32ConsoleApplication•都是工作在32位Windows环境的程序。•其中Win32Application就是普通的常见的窗口应用程序,当然有的界面做得比较个性化,比如圆形的

、不规则形状的……它们都是所谓的GUI(GraphicsUserInterface图形用户接口),我们可以通过鼠标点击来完成控制。•而Win32ConsoleApplication(win32控制台应用程序)往往是像MS-DOS窗口(XP中叫命令提示符)的样

子出现,我们得用键盘输入各种命令来使用它;或者叫CUI(CharacterUserInterface字符用户接口)。活动服务页BinaryFile二进制文件位图文件C/C++头文件C++源文件光标文件HTMLPageHTML网页lc

on档案MacroFile宏观档案脚本文件资源模板SQLScriptFileSQL文本文件

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?