




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C 面向对象程序设计 复习提要 软件学院2013 6 为了超越程序复杂性障碍 克服软件危机 人们提出了面向对象程序设计方法 面向对象程序设计方法一改过去传统的以功能分析和功能分解为基础的面向过程的结构化程序设计方法 它模拟人们理解和处理客观世界的方式来分析问题 把系统视为一系列对象的集合 并用类来抽象地描述各类具有共性的对象 使面向对象的程序可划分成一些类来构成 从而使面向对象的程序设计能比较自然地模拟客观世界的结构和活动 使问题描述空间与解空间在结构上尽可能一致 因此 采用面向对象方法可以更有效地开发大型软件系统 第一部分面向对象程序设计的基本概念 1 2面向对象的基本概念 1 对象 对象是客观实体的抽象表示 是由描述对象的属性数据和对这些数据进行的操作行为两部分组成 对象的特征 具有一个状态 由与其相关联的属性值集合所表征 具有唯一的标识名 可以区别于其他对象 有一组操作方法 每个操作方法决定对象的一种行为 对象的状态一般只能被自身的行为所改变 对象的操作包括自操作 施于自身 和它操作 施于其他对象 对象之间以消息传递的方式进行通信 一个对象的成员仍可以是一个对象 2 类类是具有相同属性和行为的对象集合的抽象描述 类的内部包括属性和行为两个主要部分 3 实例类是对具有相同属性和行为的一组对象的抽象描述 因此 类可作为一种用户自定义类型和创建对象的样板 而按照这种样板所创建的一个个具体对象就是类的实际例子 通常称为实例 4 消息消息就是请求某个对象执行它所包含的某项处理操作的指令信息 实质是对某个类对象的操作函数的调用 即方法的调用 例如 studentS1 S1 display 是一个消息 一个消息一般由三部分组成 接收消息的对象名 操作函数名 函数的参数 5 面向对象技术的三个基本特征封装性继承性多态性 6 封装性封装就是把对象的属性和行为结合成一个独立的单位 使外界不能直接访问或修改这些数据和代码 外界只能通过对象提供的接口函数来改变或获取对象的属性数据 这就实现了消息隐蔽 对象的这种特性称为封装性 7 继承性如果在一个已定义的类上 增加一些特殊属性或操作 可以形成一个新的类 这个类不仅继承了前一个类的全部特征 而且具有新的特性 因此可看作前一个类的特例 是对前一个类的继承 前一个类称为父类 新产生的类叫做子类 通过继承关系可形成一种类层次结构 叫做继承结构 10 多态性定义 在类层次结构的不同类中 可用相同的函数名实现功能不同的操作 思考题题1 试述面向对象程序设计的发展动因 2 面向对象程序设计具有哪些特性 或机制 3 解释下列术语的含义 类对象消息方法继承性多态性封装性 第二部分面向对象程序设计 一 复习内容第2章C 语言基础第3章类与对象的构造设计第4章继承性与派生类第5章多态性与虚函数第6章文件的输入与输出 这部分的程序设计例题必须熟悉 二 复习要点 第2章C 语言基础1 C 程序的一般结构一个C 程序一般可以分成四个部分 预处理指令 全局说明 包括对象类的定义 程序的主函数和用户自定义的子函数 如右图所示 一个C 程序由一个或多个源代码文件构成 C 的源代码文件分为两类 头文件 h 和源程序文件 cpp 第3章类与对象的构造设计3 1 2类和对象的定义方法classclass name private 私有成员privatevariablesandfunction protected 保护成员protectedvariablesandfunction public 公有成员publicvariablesandfunction object list 对象的另一种创建方法class nameobject list 3 1 3成员函数的功能与定义方式成员函数的功能和作用是 用于处理对象内部的数据 实现对象的操作行为 为外部程序提供操作接口 成员函数的定义方式有两种 1 外置方式 2 内置方式 3 1 4类成员访问的原则是 1 定义一个类时 数据成员和成员函数的默认访问权限是私有成员 2 成员函数可直接访问同类中的成员变量和调用同类中的成员函数 不必在函数名前加上对象名 3 私有成员或受保护成员的作用域仅限于类的说明体和类的成员函数 非成员函数应定义为类的友员函数才能访问这个类的私有成员 4 公用成员的作用域不但包括类说明体 还包括它所属对象的使用范围 可以在类外访问公用成员 但必须在成员名前加上对象名 4 1继承机制所谓继承就是允许在一个已有类上 增加一些特殊属性或操作 来派生成新的类 这个派生类不仅可以继承基类成员 而且可以定义新的成员 因此可看作前一个类的特殊类 前一个类称为父类 新产生的类叫做子类 通过继承关系可形成一种类层次结构 叫做继承结构 继承是类之间共享属性与服务的一种机制 继承的一个作用就是代码重用 即从基类派生子类 子类无需修改基类的代码 就可以直接拥有基类的成员 然后增加少量代码就可以实现特殊功能 这就实现了代码的重用 另一个作用是扩充系统 即许派生类在继承父类共性的基础上 增加新的属性和操作来实现特殊功能 class 有三种 公有继承 public 私有继承 private 保护继承 protected 缺省情况下为私有继承 classperson 基类 protected charname 11 charsex intage public char GetName classStudent publicperson private charid 9 floatscore public floatGetScore voidmain 4 2 1派生类的定义 classperson 基类 protected charname 11 intage public person cout person endl person cout deleteperson endl intGetage return20 classStudent publicperson private charid 9 floatscore public student cout student endl student cout deletestudent endl intGetage return30 voidmain person p students p 运行结果 personstudent20deletestudentdeleteperson 第5章多态性与虚函数多态性是指在类层次结构的相同类或不同类中 可用相同的函数名实现功能不同的操作 从而可以使用相同的调用方式来调用这些具有不同功能的同名函数 运行时多态 在类的继承层次结构中 不同层次的类中可能具有同名但实现不同的函数 需要在运行阶段才能根据对象所属的层次来确定调用哪个类中的同名函数 只有将同名函数说明为虚函数 通过对象指针或对象引用来调用虚函数 才能实现运行时多态 例5 2静态联编和动态联编的应用 includeclassStudent public virtualvoidprint cout Astudent endl classGStudent publicStudent public virtualvoidprint cout Agraduatestudent endl voidmain Students1 ps GStudents2 s1 print s2 print s2 Student print ps AstudentAgraduatestudentAstudentAstudentAgraduatestudent 第6章C 的输入与输出流库 C 中负责文件输入 输出的类主要有 ifstream 文件输入流类 ofstream 文件输出流类 fstream 文件输入 输出流类 要使用fstream类执行文件的I O时 必须定义一个fstream类的对象 然后使用该对象调用fstream类提供的成员函数open打开一个文件 open函数的参数有两个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖北孝感美珈职业学院《组织行为学》2023-2024学年第二学期期末试卷
- 昆明艺术职业学院《中外美术史》2023-2024学年第二学期期末试卷
- 四川文化艺术学院《轨道交通自动化专题》2023-2024学年第二学期期末试卷
- 2025届湖南省高考历史仿真模拟试卷02
- 2025年上海市安全员《C证》考试题库
- 晋中学院《特种铸造》2023-2024学年第二学期期末试卷
- 林州建筑职业技术学院《商业插图》2023-2024学年第二学期期末试卷
- 黑龙江中医药大学《商务沟通与谈判》2023-2024学年第二学期期末试卷
- 拉萨师范高等专科学校《大数据安全技术》2023-2024学年第二学期期末试卷
- 长沙学院《生物药物检测技术与设备》2023-2024学年第二学期期末试卷
- 转运铁水包安全风险告知卡
- 31863:2015企业履约能力达标全套管理制度
- 苏教版数学二年级下册《认识时分》教案(无锡公开课)
- 打造金融级智能中台的数据底座
- 工程合同管理教材(共202页).ppt
- ANKYLOS机械并发症处理方法
- 道路桥梁实习日记12篇
- 第十章运动代偿
- 氩弧焊机保养记录表
- 明星97iii程序说明书
- 《企业经营统计学》课程教学大纲
评论
0/150
提交评论