欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载  

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

    • 资源ID:3452774       资源大小:511.02KB        全文页数:35页
    • 资源格式: PPT        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    第一章 面向对象程序设计概论,1.1 OOP(Object-Oriented Programming)的基本思想和有关概念 1.1.1 面向过程程序设计与面向对象程序设计 1.1.2 面向对象程序设计的有关概念 1.2 C+对OOP方法的支持 1.3 C+对C语言的改进 1.4 C+程序的编辑、编译和运行 1.5 C+程序结构的特点 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(); ,面向对象程序设计方法,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 phrase“endl; while(ch=getchar()!='n') chcount+; if(ch=' ') wdcount+; coutendl; void count:display() cout“n*: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,Changing?,P6,1.1.1 面向过程与面向对象程序设计(续6),面向过程程序设计,面向对象程序设计,P1,P2,P3,P5,O1,O2,O3,O4,O5,Changing?,P6,O4,1.1.1 面向过程与面向对象程序设计(续7),消息传递机制,面向过程程序设计,面向对象程序设计,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); /同一消息可发向多个对象,三、封装,数据封装:将数据和处理数据的方法包装成一个整体,并将具体实现细节的数据信息和操作方法在结构上隐藏起来; 信息隐藏:将一个模块的细节部分对用户隐藏起来,用户只能通过一个受保护的接口来访问某个模块,而不能直接访问一个模块内部的细节; 对象是一个状态和操作(或方法)的封装体;,我的电路被封装在机壳内了!,使用电话请按键!,公有成员,人,工人,学生,教师,农民,四、继承,继承将客观世界中一般和特殊的关系模型化为层次结构,提供了创建新类的一种方法,它的本质特征是行为共享;,对象实例: 研究生 王 平,四、继承(续1),继承可增强代码的可重用性,代码的重用是利用继承基类的属性和方法来实现的. 继承某一基类的派生类可自动继承基类的全部属性和方法. 增加派生类时,即修改和扩充程序时也不必修改原有程序代码,只需增加一些新的程序代码.,四、继承(续2),发出同样的消息,被不同类型的对象接收,导致完全不同的行为。 例:调用函数求两个整型量或两个双精度型量的最大值。 int max(int ,int); double max(double,double);,五、多态,1.2 C+对面向对象程序设计方法的支持,C+支持数据封装(数据抽象) C+中,类是支持数据封装的工具,对象则是数据封装的实现; C+中包含有私有、公有和保护成员 C+中通过发送消息来处理对象 每个可能的消息对应一个相应的方法,方法通过成员函数来定义; C+中允许友元破坏封装性 C+中允许函数名和运算符重载 C+支持继承性 C+支持动态联编,1.3 C+对C语言的改进,增加了新的运算符::,new, delete等; (malloc, free) 改进了类型系统,增加了安全性; 引进了引用概念; 允许函数重载,允许设置缺省参数,提高了编程的灵活性; 引进了内联函数,提高了程序的效率; 可以根据需要随时对变量进行说明,1.4 C+程序的编辑、编译和运行,1.5 C+程序结构的特点,一、标识符 组成规则:以字母或下划线开始,其后跟零个或多个字母、数字或下划线; 标识符的长度任意 区分字母的大小写; 不能使用系统的保留字; C+系统关键字 二、预处理命令 宏定义 文件包含 条件编译,关键字(保留字),三、输入/输出流操作语句,流操作:指数据从源点搬运到终点的流动操作。 1、输出运算符(插入符inserting、putting) 数据的流动 终点 源点 cout(CRT显示器)xy; cout“n x =“x“t y= “yendl;,2、输入运算符,数据的流动 源点 终点 cin(键盘) 程序中的变量名或对象名; 多个输入操作可组合成一条语句; 输入运算自动识别数据类型,不需要以%开头的格式说明符。 例: 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; cout“The weight of dog1 is “dog1.weightendl; cout“The weight of dog2 is “dog2.weight“n“; cout“ Wt of chicken is“chicken.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); cout“The weight of dog1 “dog1.getWeight()endl; cout“The weight of dog2 “dog2.getWeight()endl; cout“The weight of chicken “ ; cout chicken.getWeight()“n“; return 0; ,小结,(1)OOP以对象为核心,以抽象和归类为基础,强调程序分层分类的概念,克服了软件复杂性,是将客观世界的模型在计算机中自然地表现出来的最好方法。 (2)类:将一种数据结构和操作该数据结构的方法捆在一起,封装在一个程序实体内而形成。实现了数据封装和信息隐藏。 (3)对象:抽象数据类型的实现。 (4)消息传递机制是对象之间相互通信和作用的唯一方式。 (5)对象、消息传递机制和以继承为基础的类层次结构是面向对象程序设计的三个要点。,

    注意事项

    本文(章面向对象程序设计概论.ppt)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开