预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共40页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

面向对象程序设计概念 孙聪 课程内容 •Java概述•异常处理 •面向对象程序设计概念•I/O •Java语言基础•线程 •Java面向对象特性•GUI程序设计 •Java高级特征•Java网络程序设计 •常用预定义类的使用•高级专题 •“我们之所以将自然界分解、组织成各种概念, 并按其含义分类,主要是因为我们是整个口语交 流社会共同遵守的协定的参与者,这个协定以语 言的形式固定下来……除非赞成这个协定中规定的 有关语言信息的组织和分类,否者我们根本无法 交谈”——BenjaminLeeWhorf(1897-1941) •为什么程序难写? –解空间vs.问题空间 –解决问题时,基于:计算机的结构vs.目标问题的结构 面向对象程序设计(OOP) •OOPisaprogrammingparadigmusing"objects"–data structuresconsistingofdatafieldsandmethodstogetherwith theirinteractions–todesignapplicationsandcomputer programs.(fromWikipedia) •面向对象程序设计是使用“对象”设计程序的编 程范式 •对象是由数据字段、方法及其间的交互组成的数 据结构 •允许根据问题来描述问题,而不是根据运行解决 方案的计算机来描述问题 面向对象程序设计的发展 •60年代后期Simula_67语言采用类(Class)的概 念 •70年代AlanKay研制了Smalltalk,并于1980 年首度对外发布,标志着OOP思想的确立 •80年代初,B.Stroustrup发明了C++ •80年代末到90年代初开始流行 •90年代中期J.Gosling研制了Java,一种面向 对象的高效编程语言 面向对象程序设计的特征 •AlanKay的OOP五大原则: –一切皆对象 –程序是一系列对象的组合,对象间通过消息传 递进行联系 –每个对象都有自身内存空间,可容纳其他对象 –每个对象都有一种类型 –同一类型的所有对象都能够接收相同的消息 •面向对象方法的核心概念:对象、类、封装、继 承和多态 •面向对象方法的基本工作:划分和定义对象 •抽象 •对象 •类 •封装 •继承 •多态 •抽象 •对象 •类 •封装 •继承 •多态 抽象 •什么是抽象? –抽象是一种设计技术,用以说明一个实体的本质 方面,而忽略或掩盖其非本质方面 –抽象是一种工具,用来将复杂现象简化到可以分 析、实验或者可以理解的程度 抽象 •抽象的作用 –简化:识别重要细节,忽略无关细节 –过滤问题空间中模型的无关侧面 抽象 •抽象是软件开发的基础 –软件抽象相关于对给定实体的建模 –单个实体可能有多种抽象,但OOP过程需要确 定将哪些属性和行为包括在给定的抽象中 •对象如何与类联系 –通过在抽象基础上对抽象结果的组织来联系 抽象 •抽象 •对象 •类 •封装 •继承 •多态 对象 •对象是由变量和相关方法组成的软件体 •对象是现实世界实体或概念在计算机世界中的抽 象表示 –对象=状态+行为(Booch:+标识) –对象=数据+操作 –对象=属性+服务 –…… •对象的结构 –状态:变量值 –行为:设置或改变对象的状态 对象 •状态与行为之间的关系 –对内:只有方法能操作变量 –对外:方法是对象与外部环境(对象)交互、 通信的接口 对象 •状态与行为之间的关系 –对内:只有方法能操作变量 –对外:方法是对象与外部环境(对象)交互、 通信的接口 •对象之间通过发送消息进行交互与通信 对象 •对象之间通过发送消息进行交互与通信 –消息 •由发送者对象编写 •由接收者对象解释 •由对象方法实现 –消息可以 •引起接收者状态变化 •返回结果 对象 •对象之间通过发送消息进行交互与通信 –消息的组成: •接收消息的对象 •方法名称 •方法的参数 –消息示例 对象 •如何产生有用的对象 –必须有某种方式产生对对象的请求 完成交易 在屏幕上画图 打开开关 …… –每个对象都只能满足某些请求 ——这些请求由对象的接口(interface)所定义 对象 •接口确定了对某一特定对象所能发出的请 求,或某一对象接收消息的方式 –对象如何与类联系:通过在抽象基础上对抽象 结果的组织来联系 –接口是“组织”的依据之一 对象 •对象是具有唯一对象名、固定对外接口的一 组变量/属性和方法的集合,用来模拟组成 或影响现实世界问题的一个或一组因素 –对象名——对象区别于其他对象的标志 –对象接口——对象与外界通信的通道 –变量/属性——对象所处的状态 –对象操作——实现对象的特定行为并改变对象 状态