11 面向对象设计思想
卓越嵌入式培训课件 C++基础教程
第十一章
面向对象的设计思想
卓越嵌入式培训课件 C++基础教程
本章内容 程序设计思想 面向对象编程(OOP) 面向过程与面向对象的区别 OOP的特性 类的定义 类的访问控制
卓越嵌入式培训课件 C++基础教程
程序设计方法 传统的面向过程的程序设计– POP(Process Oriented Programming)
面向对象的程序设计– OOP(Object Oriented Programming)
卓越嵌入式培训课件 C++基础教程
结构化程序设计2-1 传统的程序设计方法可以归结为“程序=算法+数据结构” ,将程序定义为处理数据的一系列过程。这种设计方法的 着眼点是面向过程的,特点是数据与程序分离,即数据与 数据处理分离。 结构化程序设计的基本思想是采用自顶向下、逐步细化的 设计方法和单入单出的控制结构。其理念是将大型程序分 解成小型、便于管理的任务。如果其中的一项任务仍然过 大,则将它分解为更小的任务。这一过程将一直持续下去 ,直到将程序划分为小型的,易于编写的模块。
卓越嵌入式培训课件 C++基础教程
结构化程序设计2-2程 序
模块 11.1 1.21.3.1
模块 21.31.3.2
模块 33.13.1.1 3.1.25
2.11.3.3
2.2
3.2
卓越嵌入式培训课件 C++基础教程
结构化程序设计的缺点 结构化程序设计为处理复杂问题提供了有 力手段,但到80年代末,这种设计方法逐 渐暴露出以下缺陷:– 程序难以管理 – 数据修改存在问题 – 难以适应大型软件的设计 – 程序可重用性差
面向过程程序设计缺点的根源在于数据与 数据处理分离6
卓越嵌入式培训课件 C++基础教程
面向对象程序设计 面向对象(Object Oriented )是认识事务的一种方法, 是一种以对象为中心的思维方式 面向对象的程序设计:– 对象=(算法+数据结构) – 程序=对象+对象+……+对象
面向对象程序设计模拟自然界认识和处理事物的方法,将 数据和对数据的操作方法放在一起,形成一个相对独立的 整体——对象(object),同类对象还可抽象出共性,形 成类(class )。一个类中的数据通常只能通过本类提供 的方法进行处理,这些方法成为该类与外部的接口。对象 之间通过消息(message)进行通讯。 面向对象程序设计不像过程性编程那样,试图使问题满足 语言的过程性方法,而是试图让语言来满足问题的要求。 其理念是设计与问题的本质特性相对应的数据格式。7
卓越嵌入式培训课件 C++基础教程
基本概念——对象 世界上所有的事物都可以称为对象(Object)。对象可以是 有形的如:一台电视机等。也可以是无形的如:帐户、一 项记录等。 一个对象就是一个独立存在的客观事物,它由一组属性和 对属性进行操作的一组操作构成。– 属性是对象静态特征的描述 – 操作是对象动态特征的描述
属性和操作是对象的两大要素。如电视的属性有:品牌、 尺寸、重量等。操作有:收视、选台、音量调节等。
8
卓越嵌入式培训课件 C++基础教程
基本概念——类 是一个抽象的概念,用来描述某一类对象所共有的、本质 的属性和类行为 根据抽象的原则对客观事物进行归纳和划分
类的一个具体实现,称为实例
类
描述这类对象共有的、本质的属性和行为
对象
具体到一只圆形的或方形的手表
手表
手表共有的属性(表针、旋钮、内部结构) 和行为(调节旋钮)9
一块手表
卓越嵌入式培训课件 C++基础教程
类和对象的区别 如何区分类和对象——以“人”和“张三”为例 “人”描述了所有人(包括“张三” )都具有的属性和行为,如有姓 名、身高、体重,有鼻子、眼睛、四肢,能交流、有思维等等 类(“人”)描述的概念是抽象的– “人”的姓名是什么? – “人”的身高是什么?
对象(“张三”)是具体的– “张三”的姓名是“张三” – “张三”的身高是185CM
类和对象的例子:– 教室——五楼多媒体教室、四楼语音教室 – 国家——中国、美国 – 学校——福州大学、厦门大学
卓越嵌入式培训课件 C++基础教程
基本概念——消息 对象可以响应消息 我们把对象之间产生相互作用所传递的信 息称做消息。 C++将“向对象发消息”处理成“调用对象 的某个成员函数”
卓越嵌入式培训课件 C++基础教程
面向对象的基本特征 抽象 封装和数据隐藏 继承 多态
卓越嵌入式培训课件 C++基础教程
抽象的设计思路 数据抽象化为属性 处理过程抽象化为操作(方法)– 例如:当建立一个图书管理系统时,通过直觉知 道系统里一定要有图书管理员/读者/书这些对 象, 而其中读者的行为含有借书/还书,学生还有 其相应的学号/姓名/班级等内容 青蛙
用面向对象方法来认识青蛙
属性 颜色 重量 行为 跳 捉害虫
.
.
卓越嵌入式培训课件 C++基础教程
封装和数据隐藏 封装是指按照信息屏蔽的原则,把对象的属性和操作结合 在一起,构成一个独立的对象。 通过限制对属性和操作的访问权限,可以将属性“隐藏” 在对象内部,对外提供一定的接口,在对象之外只能通过 接口对对象进行操作。 封装性增加了对象的独立性,从而保证了数据的可靠性。 外部对象不能直接操作对象的属性,只能使用对象提供的 服务。 TVJack
我们不用关心电视机的内部工作原理, 电视机提供了选台、调节音量等功能让我们使用。
卓越嵌入式培训课件 C++基础教程
类的定义2-1 C++通过建立数据类型——类来支持封装和数据隐藏。一 个定义完好的类可以作为独立模块使用。 类的定义格式分为说明部分和实现部分– 说明部分包含数据成员和成员函数说明 – 实现部分是用来对成员函数的定义
类的一般定义格式如下:class <类名>{ public : <公有数据成员和成员函数>; protected: <保护数据成员和成员函数>; private : <私有数据
成员和成员函数>; }; <各个成员函数的实现>;
卓越嵌入式培训课件 C++基础教程
类的定义2-2 class是定义类的关键字是数据类型说明符,<类名>是一个标识符, 用于唯一地标识一个类(新的数据类型),类名后面花括号扩起来的 部分是类体(Class Body)。 类体中定义了类成员表(Class Member List)– 数据成员(Data Member) – 成员函数(Member Function)
public、protected和private是访问限定符(access specifier) 一般在类体内先说明公有成员,它们是用户所关心的,后说明私有成 员,它们是用户不感兴趣的,但此顺序并不是必须的。 在类的说明部分之后必须加分号“;‖。 类的定义放在一个头文件中(.h),供其它需要使用该类的文件包含 类的实现部分放在一个源文件中(.cpp),该文件需要包含定义类的头 文件 类的定义和实现可以放在一个文件里,但不提倡,因为结构不清晰, 影响了程序的可读性16
卓越嵌入式培训课件 C++基础教程
青蛙类CFrog的定义//frog.h文件 class CFrog{ public: void SetSkinColor(int skinColor) void SetWeight(float weight) int GetSkinColor(); float GetWeight(); void jump(float distance); vo …… 此处隐藏:2583字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [初中教育]婚姻家庭法学教学教案
- [初中教育]浅谈小学语文教学中的创新教育
- [初中教育]中华人民共和国侵权责任法2009
- [初中教育]2016-2022年中国薄膜太阳能电池行业发
- [初中教育]多级轻型井点降水的应用
- [初中教育]外语教学法流派介绍和简评
- [初中教育]实验一、典型环节及其阶跃响应
- [初中教育]内蒙古2012-2013学年度国家奖学金获奖
- [初中教育]移动通信营销渠道管理探讨
- [初中教育]初三化学第一学期第一第二章基础知识点
- [初中教育]一天的食物教学设计
- [初中教育]光导照明系统的基本结构及工作原理
- [初中教育]长春市十一高、东北师范大学附属中学、
- [初中教育]“十三五”规划重点-配重式装卸车项目
- [初中教育]领导方法和领导艺术
- [初中教育]第三章 植物病虫草鼠害诊断与防治基
- [初中教育]2019届九年级语文上册 第二单元 6纪念
- [初中教育]甲级单位编制水豆腐项目可行性报告(立
- [初中教育]Ch8-1补充 09101数据库系统原理及应用-
- [初中教育]2017-2023年中国吊装设备行业市场分析
- 制作毕业纪念册需要哪些材料
- 2015-2016学年高二化学苏教版选修4课件
- 哈佛管理导师-创建商业案例
- 职场交际中的谈吐礼仪知识与职场会议接
- 中国糕点及面包行业发展现状与竞争战略
- 沂河“12·7”洪水茶山拦河坝
- 管道水流量计算公式
- 4-2发电机火灾事故处置方案
- 数字信号处理实验五
- 2009年经济师(中级)金融专业知识全真试
- 历史街区保护规划--04历史文化遗产保护
- 宁夏回族自治区中小学职称评价标准
- 评先评优测评表
- 圆的切线证明及线段长求解在在中考中的
- 【解析版】2015年江苏省南京外国语学校
- 人教版八年级上册科学第一章习题精华
- 责任心与执行力
- SA8000社会责任管理体系标准培训
- IgA肾病的饮食应注意
- 杭州市建设工程文件归档整理方案(试行)




