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

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

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

1、面向对象的程序设计,抽象:对某种目的而言,强调重要的部分,忽略不重要的部分。,引言,抽象是具有针对性的。,功能抽象,姓名、性别、所选号码,体重、血型、既往病史,两类抽象,以功能为中心的抽象:面向过程以对象为中心的抽象:面向对象,void main()fun1();fun2();,void fun1()/挂号,void fun2()/打印号码,对象抽象,挂号对象,医生对象,病人对象,挂号结果对象,挂号申请,病人挂号结果,医生信息,面向过程与面向对象程序设计,面向过程程序设计,面向对象程序设计,消息传递机制,1.1.1 面向过程与面向对象程序设计(续1),面向过程的方法:结构化程序设计思想为使用面

2、向过程的方法解决复杂问题提供了有力的手段。结构化程序设计思路:自顶向下划分模块,直到最底层的每个模块都是完成单一独立的功能为止;将这些函数模块装配起来即实现编程的任务。数据和处理数据的方法是分开完成的。,1.1.1 面向过程与面向对象程序设计(续2),面向对象的方法:(1)将数据及对数据的操作方法放在一起,作为对象;(2)对同类型对象抽象出其共性,形成类;(3)类中数据用本类的方法进行处理;(4)类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信。,面向过程的编程语言:C面向对象的编程语言:C+、Java、C#,程序设计就像搭积木,第一章 面向对象程序设计概论,1.1 面向

3、对象程序设计OOP(Object-Oriented Programming)的相关概念1.2 C+对OOP方法的支持1.3C+对C语言的改进1.4C+程序的编辑、编译和运行1.5C+程序结构的特点1.6 Visual C+程序运行步骤小结,1.1 面向对象程序设计的相关概念,一、抽象与对象二、类三、封装四、继承五、多态,1、抽象抽象是指对具体问题(对象)进行概括,抽出一类对象的公共性质并加以描述的过程。抽象代表着一个对象的本质特征,这个特征将该对象与所有其他种类的对象区别开来;先注意问题的本质及描述,其次是实现过程或细节。数据抽象:描述某类对象的属性或状态。代码抽象:描述某类对象的共有的行为特

4、征或具有的功能。,一、抽象与对象,2、对象对象是现实世界中实际存在的一个事物,如:一本书、一台电脑对象是面向对象程序设计的核心概念,从现实事物中抽象出来,对象具有:(1)属性:静态特征-用数据表示(2)行为:动态特征-用程序代码表示,二、类,1、什么是类 类是面向对象程序设计封装的基本单元,是创建对象的样板,它包含着对所创建对象的状态描述和方法的定义。类的完整描述包含了外部接口和内部算法以及数据结构的形式;类由struct类型引申而来,并将数据和处理数据的函数捆绑在一起。2、类是对象的抽象及描述 类中包含生成对象的具体方法,由一个类所创建的对象称为该类的实例,一个类的所有对象具有相同的数据类型

5、;3、类是抽象数据类型的实现 类是所有对象的共同的行为和不同的状态的集合体;,例1-1 结构体引申为类struct Complex/结构体 double real,imag;class Complex/类 private:double real,imag;/数据成员 public:void Set(double r,double i)/成员函数 real=r;imag=i;void main()Complex a,b;/a、b是Complex类的实例变量 a.Set(4.0,6.0);/调用成员函数来实现消息发送 b.Set(4.0,6.0);/同一消息可发向多个对象,三、封装,数据封装:将数

6、据和处理数据的方法包装成一个整体,并将具体实现细节的数据信息和操作方法在结构上隐藏起来;信息隐藏:将一个模块的细节部分对用户隐藏起来,用户只能通过一个受保护的接口来访问某个模块,而不能直接访问一个模块内部的细节;一个对象具有状态、行为和标识。对象是一个状态和操作(或方法)的封装体;,我的电路被封装在机壳内了!,使用电话请按键!,公有成员,人,工人,学生,教师,农民,四、继承,继承将客观世界中一般和特殊的关系模型化为层次结构,提供了创建新类的一种方法,它的本质特征是行为共享;,对象实例:研究生 王 平,四、继承(续1),继承可增强代码的可重用性,代码的重用是利用继承基类的属性和方法来实现的。继承

7、某一基类的派生类可自动继承基类的全部属性和方法。增加派生类时,即修改和扩充程序时也不必修改原有程序代码,只需增加一些新的程序代码。,四、继承(续2),发出同样的消息,被不同类型的对象接收,导致完全不同的行为。例:调用函数求两个整型量或两个双精度型量的最大值。int max(int,int);double max(double,double);,五、多态,1.2C+对面向对象程序设计方法的支持,C+支持数据封装(数据抽象)C+中,类是支持数据封装的工具,对象则是数据封装的实现;C+中包含有私有、公有和保护成员C+中通过发送消息来处理对象 每个可能的消息对应一个相应的方法,方法通过函数来定义;C+

8、中允许友元破坏封装性C+中允许函数名和运算符重载C+支持继承性C+支持动态联编,1.3C+对C语言的改进,增加了新的运算符::,new,delete等;(malloc,free)改进了类型系统,增加了安全性;引进了引用概念;允许函数重载,允许设置缺省参数,提高了编程的灵活性;引进了内联函数,提高了程序的效率;可以根据需要随时对变量进行说明;,1.4C+程序的编辑、编译和运行,1.5 C+程序结构的特点,一、标识符 组成规则:以字母或下划线开始,其后跟零个或多个字母、数字或下划线;标识符的长度任意区分字母的大小写;不能使用系统的关键字;C+系统关键字二、预处理命令宏定义文件包含条件编译,关键字(

9、保留字),三、输入/输出流操作语句,流操作:指数据从源点搬运到终点的流动操作。1、输出运算符(插入符inserting、putting)数据的流动 终点 源点 cout(CRT显示器)xy;coutn x=xt y=yendl;,2、输入运算符,数据的流动 源点 终点 cin(键盘)程序中的变量名或对象名;多个输入操作可组合成一条语句;输入运算自动识别数据类型,不需要以%开头的格式说明符。例:cinxy;,例1-2 流操作示范程序,#include using namespace std;void main()double x,y;coutx;couty;double z=x+y;out”x+

10、y=”zendl;,I/O流库,提供所有的输入输出操作,cout:流类对象:提取符endl:换行;,结果:请输入x:43请输入y:46x+y=89,四、函数、语句及注释,C+的源程序由若干个函数组成,函数间相互独立;C+的源程序有且只能有一个main();调用用户定义函数必须定义好,调用系统标准函数必须加相应头文件;复合语句同C语言一样,括起来,称为块。注释:两种方法/*/可放在程序区域的任何位置,可占多行/单行注释,1.6 Visual C+程序运行步骤,一、打开Visual C+开发环境主窗口二、创建一个空的项目 菜单命令:File/New 选项卡:Projects/Win32 Conso

11、le Application Location:指定路径 Project Name:指定项目名称三、建立源程序文件 菜单命令:Project/Add to Project/New 选中C+Source File,指定文件名后单击OK四、存盘运行 File/Save Build,Execute programm,小结,(1)OOP以对象为核心,以抽象和归类为基础,强调程序分层分类的概念,克服了软件复杂性,是将客观世界的模型在计算机中自然地表现出来的最好方法。(2)OOP将一种数据结构和操作该数据结构的方法捆在一起,封装在一个程序实体内,从而实现了数据封装和信息隐藏。通常,用数据成员描述某类的属性

12、,用成员函数描述行为。(3)对象、消息传递机制和以继承为基础的类层次结构是面向对象程序设计的三个要点。(4)对象是抽象数据类型的实现,根据要达到的目的描述客观实体的抽象化的模型,抽象出与目的相关的主要信息,忽略掉一些次要信息,隐藏具体化的实现细节。(5)消息传递机制是对象之间相互通信和作用的唯一方式。,#includestruct animal int weight;int feet;void main()animal dog1,dog2,chicken;dog1.weight=15;dog2.weight=37;chicken.weight=3;dog1.feet=4;dog2.feet=4

13、;chicken.feet=2;coutThe weight of dog1 is dog1.weightendl;coutThe weight of dog2 is dog2.weightn;cout the wt of chicken ischicken.weightendl;,两只狗、一只鸡共三只动物,都有重量和脚的数目两个属性,对其赋值,并输出它们的重量,#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;,void 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;,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号