章面向对象程序设计概论.ppt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 概论
- 资源描述:
-
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第一章 面向对象程序设计概论,1.1 OOP(Object-Oriented Programming)的基本思想和有关概念,1.1.1 面向过程程序设计与面向对象程序设计,1.1.2 面向对象程序设计的有关概念,1.2 C+对OOP方法的支持,1.3C+对C语言的改进,1.4C+程序的编辑、编译和运行,1.5C+程序结构的特点,1.6 Visual C+程序运行步骤,小结,1.1.1 面向过程与面向对象程序设计,例1.1:输入任意短语或句子,计算短语包含多少个字(word)和字符(character)。留意:输入短语时,字和字之间只能空一格。,#include /面向过程程序,void main(),char ch;,int wdcount,chcount;,wdcount=1;chcount=0;,printf(*:Please input any phrase:n);,while(ch=getchar()!=n),chcount+;,if(ch=)wdcount+;,printf(n*:The number of word is%dn,wdcount);,printf(n*:The number of char is%dn,chcount);,*Please input any phrase.,I am a teacher.,*:The number of word is 4,*:The number of char is 15,1.1.1 面向过程与面向对象程序设计(续1),void main(),count A;/定义对象,A.process();/调用公有成员函数,A.display();,面向对象程序设计方法,C+支持数据封装数据抽象),coutendl;,weightn;,我的电路被封装在机壳内了!,C+中允许友元破坏封装性,增加了新的运算符::,new,delete等;,C+的源程序有且只能有一个main();,参数 f1()返回值,参数 f3()返回值,(1)属性:状态和外貌特征 用数据表示,public:/公有成员,例:调用函数求两个整型量或两个双精度型量的最大值。,(1OOP以对象为核心,以抽象和归类为基础,强调程序分层分类的概念,克服了软件复杂性,是将客观世界的模型在计算机中自然地表现出来的最好方法。,coutThe weight of dog2 is dog2.,while(ch=getchar()!=n),对象实例:研究生 王 平,1.1.1 面向过程与面向对象程序设计(续2),#include,#include,using namespace std;,class count /定义类,public:/公有成员,count();/构造函数,void process();/成员函数,void display();,private:/私有成员,int wdcount,chcount;/数据成员,;,count:count(),wdcount=1;,chcount=0;,1.1.1 面向过程与面向对象程序设计(续3),void count:process()/成员函数的实现,char ch;,cout*:Please input any phraseendl;,while(ch=getchar()!=n),chcount+;,if(ch=)wdcount+;,coutendl;,void count:display(),coutn*:number of word is wdcountendl;,printf(*:number of char is%dn,chcount);,1.1.1 面向过程与面向对象程序设计(续4),是一种数学思维或计算机思维方法,与人们认识世界的方法不同,以不稳定的、多变的“过程和“操作”为中心来构造系统,可重用性较差,是建立在认识方法学基础上的一项技术科学,比较自然地模拟了人类认识客观世界的方式;,以相对稳定的“对象和“数据结构为中心来构造系统,可重用性较好,面向过程程序设计,面向对象程序设计,1.1.1 面向过程与面向对象程序设计(续5),面向过程程序设计,程序=(算法)+(数据结构),面向对象程序设计,程序=(算法+数据结构),P1,P2,P3,P4,P5,O1,O2,O3,O4,O5,P6,1.1.1 面向过程与面向对象程序设计(续6),面向过程程序设计,面向对象程序设计,P1,P2,P3,P5,O1,O2,O3,O4,O5,P6,O4,1.1.1 面向过程与面向对象程序设计(续7),消息传递机制,面向过程程序设计,面向对象程序设计,参数 f1()返回值,过程1,参数 f2()返回值,过程2,参数 f3()返回值,过程3,数据1,数据2,数据3,数据4,数据5,消息1,MF2,对象1,MF4,MF3,MF2,MF1,对象2,MF4,MF3,MF1,消息2,调用用户自定义函数必须先定义好,调用系统标准函数必须加相应头文件;,double z=x+y;,源点 终点,引进了内联函数,提高了程序的效率;,学 号:100701022,对象是现实世界中实际存在的一个事物,如:一本书、一台电脑,char ch;,int weight;,chcount+;,coutendl;,#include,对象是面向对象程序设计的核心概念,从现实事物中抽象出来,对象具有:,coutn*:number of word is wdcountendl;,对象实例:研究生 王 平,组成规则:以字母或下划线开始,其后跟零个或多个字母、数字或下划线;,display();,对象=(算法+数据结构),同printf()一样,可以输出转义符;,1.1.1 面向过程与面向对象程序设计(续8),面向过程的方法:,结构化程序设计思想为使用面向过程的方法解决复杂问题提供了有力的手段.,结构化程序设计思路:自顶向下划分模块,直到最底层的每个模块都是完成单一独立的功能为止;将这些函数模块装配起来即实现编程的任务.,数据和处理数据的方法是分开完成的.,1.1.1 面向过程与面向对象程序设计(续9),面向对象的方法:,(1)将数据及对数据的操作方法放在一起,作为对象;,(2)对同类型对象抽象出其共性,形成类;,(3)类中数据用本类的方法进行处理;,(4)类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信.,1.1.2 面向对象程序设计的有关概念,一、对象与抽象,二、类,三、封装,四、承继,五、多态,一、对象与抽象,1、对象,对象是现实世界中实际存在的一个事物,如:一本书、一台电脑,对象是面向对象程序设计的核心概念,从现实事物中抽象出来,对象具有:,(1)属性:状态和外貌特征 用数据表示,(2)方法:行为 用程序代码表示,对象=(算法+数据结构),程序=(对象1+对象2+对象3),一、对象与抽象续1),2、笼统,抽象是对现实世界中的实体进行归类、简化的描述,即模型化;是通过从特定的实例中抽取共同的性质以形成一般化的概念的过程;,抽象代表着一个对象的本质特征,这个特征将该对象与所有其他种类的对象区别开来;,抽象具有层次;,汽车,轮船,飞机,交通工具,二、类,1.什么是类,类是面向对象程序设计封装的基本单元,是创建对象的样板,它包含着对所创建对象的状态描述和方法的定义。类的完整描述包含了外部接口和内部算法以及数据结构的形式;,类由struct类型引申而来,并将数据和处理数据的函数捆绑在一起。,2.类是对象的抽象及描述,类是对问题的抽象描述,是对象的抽象。,3.类是抽象数据类型的实现,类是对逻辑上相关的函数与数据的封装,类是所有对象的共同的行为和不同的状态的集合体;,例1-2 结构体引申为类,struct Complex1/结构体,double real,imag;,class Complex2/类,private:,double real,imag;/数据成员,public:,void Set(double r,double i)/成员函数,real=r;imag=i;,;,void main(),Complex1 x;x.real=100;,Complex2 a,b;/a、b是Complex2类的实例变量,a.Set(4.0,6.0);/调用成员函数来实现消息发送,b.Set(4.0,6.0);/同一消息可发向多个对象,三、封装,数据封装:将数据和处理数据的方法包装成一个整体,并将具体实现细节的数据信息和操作方法在结构上隐藏起来;,信息隐藏:将一个模块的细节部分对用户隐藏起来,用户只能通过一个受保护的接口来访问某个模块,而不能直接访问一个模块内部的细节;,对象是一个状态和操作或方法的封装体;,我的电路被封装在机壳内了!,使用 请按键!,公有成员,人,小学生,中学生,大学生,研究生,工人,学生,教师,农民,四、承继,继承将客观世界中一般和特殊的关系模型化为层次结构,提供了创建新类的一种方法,它的本质特征是行为共享;,助教,讲师,教授,研究生,对象实例:研究生 王 平,人,身份证号码:字符串18位),姓 名:字符串20位),学生,学校名称:字符串30位),学 号:字符串12位),研究生,专 业:字符串30位),入学年月日:结构类型Date,作为“人”,身份证码:420193201917042520,姓 名:王 平,作为“学生”,学校名称:中南民族大学,学 号:100701022,作为“研究生”,专 业:自动控制,入学年月日:1/9/2019,四、承继续1),继承可增强代码的可重用性,代码的重用是利用继承基类的属性和方法来实现的.,继承某一基类的派生类可自动继承基类的全部属性和方法.,增加派生类时,即修改和扩充程序时也不必修改原有程序代码,只需增加一些新的程序代码.,四、承继续2),发出同样的消息,被不同类型的对象接收,导致完全不同的行为。,例:调用函数求两个整型量或两个双精度型量的最大值。,int max(int,int);,double max(double,double);,五、多态,1.2C+对面向对象程序设计方法的支持,C+支持数据封装数据抽象),C+中,类是支持数据封装的工具,对象则是数据封装的实现;,C+中包含有私有、公有和保护成员,C+中通过发送消息来处理对象,每个可能的消息对应一个相应的方法,方法通过成员函数来定义;,C+中允许友元破坏封装性,C+中允许函数名和运算符重载,C+支持继承性,C+支持动态联编,1.3C+对C语言的改进,增加了新的运算符::,new,delete等;,(malloc,free),改进了类型系统,增加了安全性;,引进了引用概念;,允许函数重载,允许设置缺省参数,提高了编程的灵活性;,引进了内联函数,提高了程序的效率;,可以根据需要随时对变量进行说明,1.4C+程序的编辑、编译和运行,源程序.cpp,目标文件.obj,可执行文件.exe,编译器,连接器,磁盘中的#include文件,C+库文件.LIB,1.5 C+程序结构的特点,一、标识符,组成规则:以字母或下划线开始,其后跟零个或多个字母、数字或下划线;,标识符的长度任意,区分字母的大小写;,不能使用系统的保留字;,C+系统关键字,二、预处理命令,宏定义,文件包含,条件编译,关键字保留字),表1-1C+的关键字P22,三、输入/输出流操作语句,流操作:指数据从源点搬运到终点的流动操作。,1、输出运算符插入符inserting、putting),数据的流动,终点 源点,cout(CRT显示器)程序中的变量名或对象名;,同printf()一样,可以输出转义符;,多个输出操作可组合成一条语句;,输出运算自动识别数据类型,不需要以%开头的格式说明符。,例:int x;double y;,cout“请输入数据:n;,coutxy;,coutn x=xt y=y程序中的变量名或对象名;,多个输入操作可组合成一条语句;,输入运算自动识别数据类型,不需要以%开头的格式说明符。,例:,cinxy;,例1-3 流操作示范程序,#include,using namespace std;,void main(),double x,y;,coutx;,couty;,double z=x+y;,cout”x+y=”zendl;,I/O流库,提供所,有的输入输出操作,cout:流类对象,:提取符,endl:换行;,结果:,请输入x:43,请输入y:46,x+y=89,四、函数、语句及注释,C+的源程序由若干个函数组成,函数间相互独立;,C+的源程序有且只能有一个main();,调用用户自定义函数必须先定义好,调用系统标准函数必须加相应头文件;,复合语句同C语言一样,括起来,称为块。,注释:两种方法,/*/可放在程序区域的任何位置,可占多行,/单行注释,1.6 Visual C+程序运行步骤,一、打开Visual C+开发环境主窗口,二、创建一个空的项目,菜单命令:File/New,选项卡:Projects/Win32 Console Application,Location:指定路径,Project Name:指定项目名称,三、建立源程序文件,菜单命令:Project/Add to Project/New,选中C+Source File,指定文件名后单击OK,四、存盘运行,File/Save,Build,Execute programm,*面向过程解法:,#include,struct animal,int weight;int feet;,;,int main(),animal dog1,dog2,chicken;,dog1.weight=15;dog2.weight=37;,chicken.weight=3;,dog1.feet=4;dog2.feet=4;,chicken.feet=2;,coutThe weight of dog1 is dog1.weightendl;,coutThe weight of dog2 is dog2.weightn;,cout Wt of chicken ischicken.weightendl;,return 0;,P54 L2-13,3只动物有重量和身长两个属性,对其赋值,并输出它们的重量,*面向对象解法:,#include,class animal,public:,animal(int W=0,int F=0)weight=W;feet=F;,int getWeight();,int getfeet();,private:,int weight;,int feet;,;,int animal:getWeight()/成员函数的实现,return weight;,int animal:getfeet(),return feet;,int main(),animal dog1(15,3),dog2(37,4);,animal chicken(3,4);,coutThe weight of dog1 dog1.getWeight()endl;,coutThe weight of dog2 dog2.getWeight()endl;,coutThe weight of chicken ;,cout chicken.getWeight()n;,return 0;,小结,(1OOP以对象为核心,以抽象和归类为基础,强调程序分层分类的概念,克服了软件复杂性,是将客观世界的模型在计算机中自然地表现出来的最好方法。,(2类:将一种数据结构和操作该数据结构的方法捆在一起,封装在一个程序实体内而形成。实现了数据封装和信息隐藏。,(3对象:抽象数据类型的实现。,(4消息传递机制是对象之间相互通信和作用的唯一方式。,(5对象、消息传递机制和以继承为基础的类层次结构是面向对象程序设计的三个要点。,谢谢观看,展开阅读全文

咨信网声明:本文档由用户上传并分享,仅供学习交流、研究之用,未经授权,严禁复制、发行、汇编、翻译或网络传播等,侵权必究。
咨信网小贴示:
1、浏览或下载可查看了解,请点击【咨信网告知】。
2、下载文件中如有侵权或不适当内容,将立即纠正。
3、如果因为网速或其他原因下载失败请重新下载,重复下载[60天内]不扣币。
4、开具发票登录电脑端申请,请点击【索取发票】。
咨信网客服组:【微信客服】
1、浏览或下载可查看了解,请点击【咨信网告知】。
2、下载文件中如有侵权或不适当内容,将立即纠正。
3、如果因为网速或其他原因下载失败请重新下载,重复下载[60天内]不扣币。
4、开具发票登录电脑端申请,请点击【索取发票】。
咨信网客服组:【微信客服】


章面向对象程序设计概论.ppt
















自信AI助手














微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/14509577.html