版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、面向对象程序设计与C+第三章 面向对象编程教 师: 王 涛 电 话: 51688243办公室: 九教北512E-mail: 1. 面向过程与面向对象 面向过程语言(C, pascal) 程序由模块(module)组成, 采用自顶向下设计(top-down design)方法 基于对象语言(VB) 程序由类(class)构成,基本特性为封装性:将相关联的数据和处理过程封装成类 面向对象语言(C+, Java) 程序由类(class)构成,基本特征为封装性、继承性和多态性. 面向过程语言以过程(procedure)为基本模块,若干相关模块组成大模块. 面向过程程序设计采用自顶向下设计(top-do
2、wn design):将复杂的问题分解成若子问题,子问题可以再进行分解,直到各子问题都比较容易解决. 生产一辆汽车,可将整个生产过程分解为: 生产底盘 生产引擎 生产动力传动系统 组装 检测配件和整车面向过程程序设计 软件设计是用计算机语言对现实世界的抽象和模拟. 面向对象方法追求软件系统对现实世界的直接模拟,使设计更加贴近现实世界. 对象(object)是一个系统的基本组成元素. 类(class)是同一类型所有对象的集合抽象,一个类就是一种抽象数据类型.面向对象程序设计 现实世界每个具体事务(客观存在)都可以看作是一个对象.一个人,一台电脑一场球赛,一个班级 每个对象都具有自己的特性(属性)
3、.人的姓名,年龄,身高等.电脑的品牌,价格等 每个对象都具有自己的行为.人吃放,学习等电脑的开机,关机等面向对象程序设计 对象 = 特性(属性) + 行为 特定对象之间存在某种关系一个班级包含若干学生(belong to)一个学生拥有一台或多台电脑(has a)(一个)学生是(一个)人(is a) 对象之间相互作用老师让学生交作业学生启动机器面向对象程序设计面向对象程序设计 类是一种抽象数据类型,可以为一个类定义成员变量(member variable)来表示该类所有对象共有的属性,定义成员函数(member function)表示共有的行为。class Humen char name64;/
4、 成员变量int age;void sleep();/ 成员函数void eat();2. 类的封装性 面向过程编程中,数据与处理数据的函数相互独立,处理模式为向函数传递参数并获得返回值. char str64 = “C+ programming”;int len = strlen(str); 面向对象编程中,将数据与处理数据的函数封装成一个整体 类.class string private: char str64;public:int GetLen();string str;int len = str.GetLen(); 类通常将接口(函数集合)提供给用户,而将具体实现细节进行隐藏. C+中
5、使用public和private关键字来进行访问控制, public用于提供类的接口, private隐藏类的实现细节.class student private:char StudentID 64;/ 学号void Eat();public:char* GetStudentID();void Study();信息隐藏 当一个数据类型仅暴露其公有接口, 而将其私有实现隐藏, 则称这个数据类型是抽象的. C+中的一个类就是一种抽象数据类型,将类所提供的功能以公有成员函数的形式封装,而将具体实现隐藏. 抽象数据类型使得用户不需要了解具体实现细节,可以提高程序的可靠性和健壮性. 示例程序:03_01
6、.抽象数据类型 面向对象系统中, 对象之间通过消息传递来进行协作. 一个完整的消息包含: 消息名和消息参数 消息的发送者和接收者 C+语言中,消息的传递体现为类成员函数的调用.int main() ofstream out;out.open(“test.dat”);return 0;3.消息传递 面向对象三大基本特性: 封装性 继承性 多态性 引入继承性和多态性, 可描述特定类之间的一种包含关系,使之形成层次结构。4. 继承与多态继承性 继承性是描述了两种抽象概念(类)一种包含关系. 类B继承类A, 一般可以表示为“ B is a type of A”. A称为基类或父类, B称为子类或派生类
7、. 在面向对象系统中,引入继承性是为了: 支持代码重用, 减少代码冗余 减少接口和界面 引入继承性之后,就形成了类的层次Class Humenprotected:char name64;int age;void Sleep();void Eat();class Student : public Humen protected:char studentID64;public:void Study();继承性HumenStudent 多态性指不同的对象收到相同的消息时产生不同的动作. C+语言中多态性体现为:具有继承关系的不同层次的类中,可以有相同名的函数,其实现方法各不相同. 熟练掌握多态是成为
8、C+高手的最重要条件.多态性5. 面向对象语言 目前主流的面向对象程序设计语言有: C+ Java LISP Simula Smalltalk 6. 面向对象系统建模 所谓模型,就是为了理解事物而对事物作出的一种抽象,是对事物的一种无歧义的书面描述. UML(Unified Modeling Language)是一种标准的面向对象建模语言(教材P113)。 用面向对象方法开发软件,通常需要建立三种形式的模型:描述数据结构的对象模型(用类图及ER图表示)描述控制结构的动态模型(用状态图表示)描述系统功能的功能模型(用数据流图表示)对象模型 对象模型模拟现实世界的对象及对象之间的关系,描述了系统的
9、静态结构. 表示类-&-对象的图形符号:类名属性行为HumennameageSleepEat 类-&-对象之间的关系可分为: 归纳(继承)关系(is a): 一般特殊的关系交通工具汽车自行车对象模型 组合关系(belong to): 整体部分的关系教材封面前言目录章1,m对象模型 关联关系(has a): 相互依赖,相互作用的关系教材教师1+使用对象模型类图员工姓名电话身份证号工资雇佣解雇公司名字地址业务范围部门1,m产品产品名成本重量1+生产经理工人项目项目名预算优先级参加1+1+主持1+管理0,11+为之工作ER图员工姓名电话工资公司名字地址业务工人经理ISAISA参加主持项目项目名预算优先级部门组成管理生产产品产品名成本重量为之工作动态模型 动态模型表示系统的控制性质,规定了对象模型中的对象的合法变化序列. 通常用状态图描述对象对事件(消息)的响应行为及状态变化. 每一个类的状态图通过共享事件合并起来,构成了系统的动态模型.状态1Do:行为1状态2Do:行为2初始事件事件1结束事件状态图进行Do:暂停Do:继续完成启动暂停完成
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二四年度一次性技术咨询服务采购合同12篇
- 2025年度速录服务与智能语音助手融合合同3篇
- 2025年度企业安全生产责任协议书范本6篇
- 2025年度高空作业安全生产责任与保障协议3篇
- 2025年猪圈建造与新能源利用合同模板3篇
- 二零二四年专业债务清收公司委托合同3篇
- 2025版螺旋钢管智能制造与自动化升级合同4篇
- 二零二五年度跨境电商园区场地租赁及物流服务合同2篇
- 2024租养鸡场的合同范本
- 二零二四事业单位项目合作合同示范文本2篇
- 衡水市出租车驾驶员从业资格区域科目考试题库(全真题库)
- 护理安全用氧培训课件
- 《三国演义》中人物性格探析研究性课题报告
- 注册电气工程师公共基础高数辅导课件
- 土方劳务分包合同中铁十一局
- 乳腺导管原位癌
- 冷库管道应急预案
- 司法考试必背大全(涵盖所有法律考点)
- 公共部分装修工程 施工组织设计
- 《学习教育重要论述》考试复习题库(共250余题)
- 装饰装修施工及担保合同
评论
0/150
提交评论