面向对象基础知识.ppt
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3 面向对象程序设计
面向对象是一种主体-动作模式
面向对象程序设计方法:把问题看成由许多 彼此相互联系的对象组成。
面向对象方法的出发点:从认识系统的方法 角度,来分析、设计和实现一个系统,符合人 们的日常自然的思维习惯。
面向对象程序是如何设计的?
在面向对象的程序设计中,重点在于数据, 而不是过程。数据构成了软件分解的基础, 而不是功能。
什么是对象?
对象是客观存在的实体。 eg: one person
a pen a cat a bird ...
对象有两方面的特征 其一,状态特征。笔的大小,颜色等, 其二,行为特征。鸟会飞,会跳跃等。
现实世界由形形色色的“对象”构成。对象由 静态属性和动态行为构成。 对象=属性+行为
对象应具有的特性: ⑴必须有一个区别于其它对象的名字 ⑵用属性(或叫状态)来描述它的某些特征 ⑶有一组操作,每一个操作决定对象的一种
Class BankAccout { public:
例如:教师王明是一个对象 对象名:王明 对象的属性: 年龄:30 学历: 博士 职称:教授 专业:计算机软件 对象的操作; 吃饭 授课
一个个象王明一样的具体的老师构成了世界上没有 的抽象的“教师”类。
源自文库
对象的交互
在面向对象程序设计中,对象之间也需要联系,我 们称为对象的交互。
消息传递——面向对象程序设计技术提供的一种机 制,允许一个对象与另一个对象的交互。
行为
面向对象程序设计中:对象=数据+操作
注意:对象的状态不仅仅是初等的数据类型, 许多对象可以将另一个对象作为他们状态的 一部分。
一辆车
发动机
发动机
座位 车轮
座位 车轮
座位 车轮
气缸 …
类(class)
什么是类?
类是具有共同特征 的对象的抽象。 eg: Person
Car Cat Bird ...
面向对象程序设计引论
C++是以C语言为基础,增加了面向对象程 序设计的功能,适合编制复杂的大型软件系统。
重点: 理解面向对象的思想、对象、类、继承、
为什么要面向 对象?
多态性等概念
程序设计高级语言可分为四代:
第一代对数学表达式有很强的运算处理能力,如FORTRAN; 第二代如何有效表达算法,如PASCAL,C;
面向过程设计思想的核心——功能分解 面向过程设计将数据结构和过程作为两个实体对待,重点在过
程。
举例说明:银行系统
该系统允许顾客开设不同的银行账户,其中 包括现金账户、支票账户和贷款账户,同时 允许顾客存款、取款和转账。
根据面向过程的程序设计方法 step 1: 将银行系统分解成三个模块: 存款——MakeDeposit 取款——WithDraw 转账——Transfer
第三代引入了抽象数据类型,如Ada; 第四代面向对象程序设计,如Simula、Smalltalk、
Object-C、 C++,Java;
1 面向过程程序设计
在面向对象程序设计方法出现之前,占主流的 是结构化程序设计方法,即面向过程的程序设计 语言。 面向过程:采用模块化、按照解决问题的步骤分
步设计程序。
2、相同形式的消息可以传递给不同的对象,所做 出的响应可不同。
3、消息的发送可以不考虑具体的接受者 ★对象之间的消息传递机制实际上对应于面向过程 设计的过程调用,其实质是方法(函数)的调用
消息的分类
公有消息——由其他对象直接发送给它的 消息。被调用的方法,在所属的类中由 public说明
私有消息——自己向自己发送的消息,由 private 说明
消息——一个对象向另一个对象发出的请求。 eg: 顾客对象可以请求银行账户对象的服务,如
“存入300元”、“取出200元”等,当银行账户对 象接到请求后,执行相应操作
方法——也称为操作,类似于面向过程设计中所说 的函数。方法定义了一系列计算步骤。
消息具有三个性质:
1、同一个对象可以接收不同形式的多个消息,做 出不同的响应
面向对象思想的引入
面向过程的设计存在以下缺点: 1、可重用性差 2、可维护性差 3、安全性差
产生主要原因:数据和过程的分离 解决途径:引入面向对象程序设计思想
对象与类是面向对象程序设计中最重要的概 念。
本节要求:
理解并掌握对象、类的概念 ,以及它们
之间的关系
2 面向对象
对象与类是面向对象程序设计中最重要的概 念。 本节要求: 理解并掌握对象、类的概念 ,以及它们 之间的关系
类:对一组具有共同的属性特征和行为特征的对象 的抽象。
类是多个对象的抽象,对象是类的一个实例
如各种鸟具有羽毛,翅膀,嘴,会飞。把这些 鸟的对象归为一类,即鸟类,鸟类具有多个对象 共有的状态和行为。在面向对象程序设计中,正 是采用类的概念定义一组具有共同特征的对象。
类的概念以及与对象的关系 类和对象是抽象与具体的关系。 类只在编译时存在;对象是运行时存在的实体。
step 2: 接着建立一个简单的数据结构:
struct account
{ char name; /* 姓名 */ unsigned long accountId; /* 账号 */ float balance; /* 余额 */ float interestYTD /* 年利息 */
}
Step 3: 按照一定的操作顺序编写程序。
以银行系统为例:解决银行账户的问题重点 应该放在银行账户上
Step1: 确定银行账户的基本数据; Step2: 根据顾客在账户(数据)中要做什么,
提出相应的操作;
注意:不能将数据和相应操作看成两个分离的实体,而是 作为一个完整的实体对待。把银行账户的操作定义在数据上, 在面向对象程序设计方法中,银行账户就是一个类,称为银 行账户类,而每个具体的银行账户就是银行账户类的一个对 象。
类的确定与划分
面向对象设计是将系统分解成若干对象,对象之间的 作用构成了整个系统。
如何把实际问题的事物汇聚成一个个的“类”,是面 向对象程序设计的一个难点。类划分得当,既有利于 对程序扩充,又可以提高代码的可重用性。
如何确定和划分类? 基本原则:寻求一个大系统中事物的共性,将具有
共性的系统成为一个确定的类。(类不是函数的集合)