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

上传人:sccc 文档编号:5997046 上传时间:2023-09-12 格式:PPT 页数:28 大小:368.52KB
返回 下载 相关 举报
章面向对象程序设计概论.ppt_第1页
第1页 / 共28页
章面向对象程序设计概论.ppt_第2页
第2页 / 共28页
章面向对象程序设计概论.ppt_第3页
第3页 / 共28页
章面向对象程序设计概论.ppt_第4页
第4页 / 共28页
章面向对象程序设计概论.ppt_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《章面向对象程序设计概论.ppt》由会员分享,可在线阅读,更多相关《章面向对象程序设计概论.ppt(28页珍藏版)》请在三一办公上搜索。

1、第一章 面向对象程序设计概论,1.1 OOP(Object-Oriented Programming)的基本思想和有关概念1.1.1 面向过程程序设计与面向对象程序设计1.1.2 面向对象程序设计的有关概念1.2 C+对OOP方法的支持1.3C+对C语言的改进1.4C+程序的编辑、编译和运行1.5C+程序结构的特点一、标识符二、预处理语句三、输入(Input)/输出(Output)流操作语句四、函数、语句及注释小结,1.1.1 面向过程与面向对象程序设计,面向过程程序设计程序=(算法)+(数据结构),面向对象程序设计程序=(算法+数据结构),1.1.1 面向过程与面向对象程序设计,例1.1:输

2、入任意短语或句子,计算短语包含多少个字(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,c

3、hcount);,1.1.1 面向过程与面向对象程序设计(续1),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.1.1 面向过程与面向对象程序设计(续2),#include#include class count/定义类public:/公有成员 count();/构造函数 void process();/

4、成员函数 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()printf(n*:number of word is%dn,wdco

5、unt);printf(n*:number of char is%dn,chcount);,1.1.1 面向过程与面向对象程序设计(续4),是一种数学思维或计算机思维方法,与人们认识世界的方法不同以不稳定的、多变的“过程”和“操作”为中心来构造系统可重用性较差,是建立在认识方法学基础上的一项技术科学,比较自然地模拟了人类认识客观世界的方式;以相对稳定的“对象”和“数据结构”为中心来构造系统可重用性较好,面向过程程序设计,面向对象程序设计,1.1.1 面向过程与面向对象程序设计(续5),消息传递机制,面向过程程序设计,面向对象程序设计,1.1.2 面向对象程序设计的有关概念,一、对象与抽象二、类

6、三、封装四、继承,一、对象与抽象,1、对象对象是现实世界中实际存在的一个事物,如:一本书、一台电脑对象是面向对象程序设计的核心概念,从现实事物中抽象出来,现实生活中的对象具有:自己的状态和外貌特征自己的行为对象=(算法+数据结构)2、抽象抽象是OOP中最基本的思想,是对现实世界中的实体进行归类、简化的描述,即模型化状态与外貌特征用数据描述对象的属性行为用程序代码来实现方法,行为共享,一、对象与抽象(续1),抽象代表着一个对象的本质特征,这个特征将这个对象与所有其他种类的对象区别开来;抽象是通过从特定的实例中抽取共同的性质以形成一般化的概念的过程;抽象具有层次;,飞机,二、类,1、什么是类 类是

7、面向对象程序设计封装的基本单元,是创建对象的样板,它包含着对所创建对象的状态描述和方法的定义。类的完整描述包含了外部接口和内部算法以及数据结构的形式;类由struct类型引申而来,并将数据和处理数据的函数捆绑在一起。2、类是对象的抽象及描述 类中包含生成对象的具体方法,由一个类所创建的对象称为该类的实例,一个类的所有对象具有相同的数据类型;3、类是抽象数据类型的实现 类是所有对象的共同的行为和不同的状态的集合体;,三、封装,数据封装:将数据和处理数据的方法包装成一个整体,并将具体实现细节的数据信息和操作方法在结构上隐藏起来;信息隐藏:将一个模块的细节部分对用户隐藏起来,用户只能通过一个受保护的

8、接口来访问某个模块,而不能直接访问一个模块内部的细节;一个对象具有状态、行为和标识。对象是一个状态和操作(或方法)的封装体;,我的电路被封装在机壳内了!,使用电话请按键!,公有成员,人,工人,学生,教师,农民,四、继承,继承将客观世界中一般和特殊的关系模型化为层次结构,提供了创建新类的一种方法,它的本质特征是行为共享;,实例:研究生 王 平,四、继承(续1),1.2C+对面向对象程序设计方法的支持,C+支持数据封装(数据抽象)C+中,类是支持数据封装的工具,对象则是数据封装的实现;C+中包含有私有、公有和保护成员C+中通过发送消息来处理对象 每个可能的消息对应一个相应的方法,方法通过函数来定义

9、;C+中允许友元破坏封装性C+中允许函数名和运算符重载C+支持继承性C+支持动态联编,1.3C+对C语言的改进,增加了新的运算符::,new,delete等;(malloc,free)改进了类型系统,增加了安全性;引进了引用概念;允许函数重载,允许设置缺省参数,提高了编程的灵活性;引进了内联函数,提高了程序的效率;可以根据需要随时对变量进行说明;,1.4C+程序的编辑、编译和运行,1.5C+程序结构的特点,例1-2 C+示范程序,#include void main()double x,y;coutx;couty;double z=x+y;cout”x+y=”zendl;,I/O流库,提供所有

10、的输入输出操作,cout:流类对象:提取符endl:换行;,结果:请输入x:43请输入y:46x+y=89,1.5 C+程序结构的特点(续1),一、标识符 组成规则:以字母或下划线开始,其后跟零个或多个字母、数字或下划线;标识符的长度任意区分字母的大小写;不能使用系统的保留字;C+系统关键字二、预处理命令宏定义文件包含条件编译,关键字(保留字),三、输入/输出流操作语句,流操作:指数据从源点搬运到终点的流动操作。1、输出运算符(或称为插入符Inserting、putting)数据的流动 终点 源点 cout(CRT显示器)程序中的变量名或对象名;同printf()一样,可以输出转义符;多个输出

11、操作可组合成一条语句;输出运算自动识别数据类型,不需要以%开头的格式说明符。例:cout“请输入一个实数:n;coutx+y=zendl;cout”n x=”x”t y=”yendl;,2、输入运算符,数据的流动 源点 终点 cin(键盘)程序中的变量名或对象名;多个输入操作可组合成一条语句;输入运算自动识别数据类型,不需要以%开头的格式说明符。例:cinxy;,四、函数、语句及注释,C+的源程序由若干个函数组成,函数间相互独立;C+的源程序有且只能有一个main();调用用户定义函数必须定义好,调用系统标准函数必须加相应头文件;复合语句同C语言一样,括起来,称为块。注释:两种方法/*/可放在

12、程序区域的任何位置,可占多行/单行注释,小结,(1)OOP以对象为核心,以抽象和归类为基础,强调程序分层分类的概念,克服了软件复杂性,是将客观世界的模型在计算机中自然地表现出来的最好方法。(2)OOP将一种数据结构和操作该数据结构的方法捆在一起,封装在一个程序实体内,从而实现了数据封装和信息隐藏。通常,用数据成员描述某类的属性,用成员函数描述行为。(3)对象、消息传递机制和以继承为基础的类层次结构是面向对象程序设计的三个要点。(4)对象是抽象数据类型的实现,根据要达到的目的描述客观实体的抽象化的模型,抽象出与目的相关的主要信息,忽略掉一些次要信息,隐藏具体化的实现细节。(5)消息传递机制是对象

13、之间相互通信和作用的唯一方式。,#includestruct 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 the wt of chicken ischicken.weighte

14、ndl;return 0;,P56 L2-14 3只动物有重量和身长两个属性,对其赋值,并输出它们的重量,#include class animalpublic: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),chicken(3,4);coutThe weight of dog1dog1.getWeight()endl;coutThe weight of dog2 dog2.getWeight()endl;coutThe w of chicken chicken.getWeight()n;return 0;,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号