第一章 面向对象技术概述
1.1 概述
1.2 面向对象语言发展历史
1.3 面向对象技术的作用
1.4 面向对象技术的应用课程内容
面向对象技术:(简要介绍)
1,面向对象分析
2,面向对象设计
面向对象语言,C++ (重点讲解)
学习方法
清楚地了解算法的结构和流程
清楚地了解语言的功能第一章 面向对象技术概述
1.1 概述
1.2 面向对象语言发展历史
1.3 面向对象技术的作用
1.4 面向对象技术的应用学习要求:
了 解 并掌 握面 向对 象技 术
( O b j e c t - O r i e n t e d
Technique,OOT)的基本概念
理解并掌握面向对象编程语言
C++基本内容
能应用 C++语言编写应用程序第一章 面向对象技术概述
1.1 概述
1.2 面向对象语言发展历史
1.3 面向对象技术的作用
1.4 面向对象技术的应用非面向对象语言
Fortran (50年代中期 )
Algol (60年代 )
Pascal (68年 )
Basic (64年 )
C 语言 ( 72年
Dennis Ritchie
创建 〕
面向对象语言
Simula (60年代后期 )
Ada (70年代前期 )
Smalltalk (72年开始 )
C++ (80年由 Bell
公司 Stroustrup 创建 )
Java (94年由 SUN
公司 创建 )
1.2 面向对象语言发展历史第一章 面向对象技术概述
1.1 概述
1.2 面向对象语言发展历史
1.3 面向对象技术的作用
1.4 面向对象技术的应用在软件开发过程中主要有以下作用:
1,提高生产效率。表现在:程序重用共享
2,降低维护复杂性。表现在:程序模块化
3,开发大型软件。主要表现在:
抽象模型更接近现实世界。
模型与程序易于理解
程序具有重用性和模块化
软件易于维护
1.3 面向对象技术的作用第一章 面向对象技术概述
1.1 概述
1.2 面向对象语言发展历史
1.3 面向对象技术的作用
1.4 面向对象技术的应用
1,面向对象数据库 (OODB
Object-Oriented Database)
2,面向对象的系统模拟
3,面向对象的人机交互图形用户界面
(GUI,Graphic User Interface)
4,人工智能和知识工程
5,计算机辅助软件工程 ( CASE,
Computer-Aided Software Engineering)
6,计算机网络设计模拟
1.4 面向对象技术的应用第二章 面向对象技术的基本特征
2.1 对象
2.2 类
2.3 封装
2.4 继承
2.5 消息
2.6 结构与连接
2.7 多态性主要特征,对象、类、封装、继承、消息、
结构与连接,及多态性,
2.1 对象 ( object )
实体对象? 一台计算机第二章 面向对象技术的基本特征抽象对象? 一项计划什么是对象,用来描述客观事物的一个实体,它是构成系统的一个基本单元。一个对象由一组属性和服务组成。
对象构成要素,
1.对象标识符 (对象名) 2.属性 3.服务第二章 面向对象技术的基本特征
2.1 对象
2.2 类
2.3 封装
2.4 继承
2.5 消息
2.6 结构与连接
2.7 多态性属性,是用来描述对象静态特征的一个数据项 。
服务,是用来描述对象动态特征和行为的一个操作。
标 识符,是对象的名称,用来区别与其他对象。
对象名属性服务学号、姓名、专业、性别、
年龄、身份证号、电话等等获取和修改学号、姓名、
专业、性别、年龄等等
( 表一 )
例题 1:考虑对象,学生”,具体描述为:
第二章 面向对象技术的基本特征
2.1 对象
2.2 类
2.3 封装
2.4 继承
2.5 消息
2.6 结构与连接
2.7 多态性学生注意点,1,一体性? 三者成为一体
2,区别? 三者的区别例题 2:对象,课程” 的有关抽象描述。
对象名属性服务课程课程名、编号、学时数、选课要求、任课教师等获取并修改课程名、编号、学时数、选课要求、任课教师等
(表二 )
注意点,1,属性是对对象的静态描述,
2,服务是对对象的动态描述,
外部是通过调用服务与对象取得联系,
第二章 面向对象技术的基本特征
2.1 对象
2.2 类
2.3 封装
2.4 继承
2.5 消息
2.6 结构与连接
2.7 多态性第二章 面向对象技术的基本特征
2.1 对象
2.2 类
2.3 封装
2.4 继承
2.5 消息
2.6 结构与连接
2.7 多态性什么是类? 是具有相同属性和服务的集合,它提供对对象的抽象描述
2,2 类 ( class )
类与对象的关系? 类? 对象抽象定义 实例例题 3,模具? 由模具压出的工件学生? 学生王强模板? 应用模板产生的文件类型? 变量,如 C 语言中的
int 和 int x;
第二章 面向对象技术的基本特征
2.1 对象
2.2 类
2.3 封装
2.4 继承
2.5 消息
2.6 结构与连接
2.7 多态性类的分类? 抽象类,基类 (父类 ),
派生类 (子类 ),等等基 类? 运用抽象原则,舍弃对象的特殊性,提取对象的 共同性,
得到的一个对象集的类,
派生类? 在基类的基础上,再考虑在抽象过程中被舍弃的对象的 特殊性,而产生的新类,
例题 4,若考虑类“学生”,则类“大学生”
和“中学生”就是它的派生类。类
“学生”是它们的基类。
第二章 面向对象技术的基本特征
2.1 对象
2.2 类
2.3 封装
2.4 继承
2.5 消息
2.6 结构与连接
2.7 多态性基类与派生类的关系
派生类具有基类的全部特征。
派生类有自己的特征,
不完全等于基类。
它们有继承关系,派生类是基类的子集。
分类的目的和意义?
对现实世界的实体进行分类,便于应用 OOT。
直观地,正确地,有层次地表达现实世界。
例如,基类,学生”和 派生类,大学生”
的关系。
2.1 对象
2.2 类
2.3 封装
2.4 继承
2.5 消息
2.6 结构与连接
2.7 多态性考虑运输工具这个实体,它包含了车辆,车辆又包含机动车和非机动车,机动车又包含轿车和卡车等等。如果建一基类“机动车”,
则“轿车”和“卡车”就是“机动车”的派生类,而“车辆”可以是基类“机动车”的基类。即基类可以有基类,派生类可以有派生类。
例题 5:
第二章 面向对象技术的基本特征第二章 面向对象技术的基本特征
2.1 对象
2.2 类
2.3 封装
2.4 继承
2.5 消息
2.6 结构与连接
2.7 多态性车辆 客车卡车轿车面包车机动车 越野车普通车大客车非机动车图一:车辆类层次图第二章 面向对象技术的基本特征
2.1 对象
2.2 类
2.3 封装
2.4 继承
2.5 消息
2.6 结构与连接
2.7 多态性类名属性服务
Person
ID,Name,Add,...
GetID,GetName,
ChID,ChName,...
例题 6:类“课程”的表示
Course
CID,CName,Credit,Term,Note
GetID,GetName,GetCredit,GetNote
ChID,ChName,ChCredit,ChNote
类的表示第二章 面向对象技术的基本特征
2.1 对象
2.2 类
2.3 封装
2.4 继承
2.5 消息
2.6 结构与连接
2.7 多态性类名,属性,服务的命名注意点
标识符(即名字)要达义。
要简明,短小,符合人的思维习惯。
类名宜用名词或动名词,
属性名用名词或动名词,
服务名用动词 或动名词。
第二章 面向对象技术的基本特征
2.1 对象
2.2 类
2.3 封装
2.4 继承
2.5 消息
2.6 结构与连接
2.7 多态性仓库 属性服务价格表,物品,
帐单,电话,
等等提供物品,
帐单等等
(图二 )
2.3 封装 (encapsulation)
例 7:
抽象考虑一个仓库,外部只能通过管理员获取物品。
第二章 面向对象技术的基本特征
2.1 对象
2.2 类
2.3 封装
2.4 继承
2.5 消息
2.6 结构与连接
2.7 多态性例 8,考虑类‘帐户’,其表示如下:
帐户帐户号,户主,身份证号,地址,
电话,密码,存款。
修改显示帐户号,户主,身份证号,
地址,电话,密码,存款。
问题的提出? 从现实世界的实例表明,
类的一些消息需要保护,
外界不能随意提取修改,
OOT的封装就提供这一需求。
第二章 面向对象技术的基本特征
2.1 对象
2.2 类
2.3 封装
2.4 继承
2.5 消息
2.6 结构与连接
2.7 多态性什么是封装? 把对象的属性和服务结合成一个 独立 的单元,
并尽可能 荫蔽 对象的内部细节。
封装的特点? 1,一个清楚的边界 。
所有对象的成分都在这个边界内。
2,一个接口 。
外部通过这个接口访问对象的内部成员。
第二章 面向对象技术的基本特征
2.1 对象
2.2 类
2.3 封装
2.4 继承
2.5 消息
2.6 结构与连接
2.7 多态性需要更多的输入输出函数。
封装的优点? 1,数据独立 (如每件事物都对应于一对象 )
2.具有隐藏性和安全性
(如银行的帐户 )
3.易于维护 (由于数据独立,易于发现问题 )
封装的缺点?
第二章 面向对象技术的基本特征
2.1 对象
2.2 类
2.3 封装
2.4 继承
2.5 消息
2.6 结构与连接
2.7 多态性
特殊类具有普通类的所有特性和服务
是类之间的一种关系
是 OOT 的要点之一
2.4 继承 (inheritance)
什么是继承?
继承的特点?
设 A 为基类,B 为派生类。
1,共享性,派生类具有基类所有特征,
即,A? B
2,区别性,派生类不等于基类,即 A≠ B
3,层次性,表示了类之间的关系第二章 面向对象技术的基本特征
2.1 对象
2.2 类
2.3 封装
2.4 继承
2.5 消息
2.6 结构与连接
2.7 多态性例 9:车辆的继承关系车辆非机动车 客车卡车轿车机动车例 10:人类按职业划分的一种继承关系人学生 工人 教师 农民中学生 大学生 研究生 讲师 教授第二章 面向对象技术的基本特征
2.1 对象
2.2 类
2.3 封装
2.4 继承
2.5 消息
2.6 结构与连接
2.7 多态性继承的优点?1,减少原代码,
即代码可重用。
2,代码的相互独立性。
3,易于维护。
4,体现自然界之间的关系。
第二章 面向对象技术的基本特征
2.1 对象
2.2 类
2.3 封装
2.4 继承
2.5 消息
2.6 结构与连接
2.7 多态性
2.5 消息 (message)
什么是消息 消息是向对象发出的服务请求
1,对象标志
2,服务标志
3,输入信息
4,输出信息消息的组成
例 11:“请你把那本书拿给我!”
对象标志,你服务标志,把那本书拿给我输入信息,那本书输出信息,书给我第二章 面向对象技术的基本特征
2.1 对象
2.2 类
2.3 封装
2.4 继承
2.5 消息
2.6 结构与连接
2.7 多态性消息的作用
1,提供类之间的动态联系
2,对象通过消息对外提供服务
消息的执行流程?
创建对象发送消息分析处理消息返回相应信息结束接受消息第二章 面向对象技术的基本特征
2.1 对象
2.2 类
2.3 封装
2.4 继承
2.5 消息
2.6 结构与连接
2.7 多态性对象 A,
打印机对象 B,
操作系统接受消息发送打印消息执行返回信息结束接受信息在例题中,对象标志,打印机,
服务标志,打印输入信息,要打印的文件输出信息,打印结束分析两个对象,打印机” 和
“操作系统” 之间的消息通信,
例 12:
第二章 面向对象技术的基本特征
2.1 对象
2.2 类
2.3 封装
2.4 继承
2.5 消息
2.6 结构与连接
2.7 多态性
2.6 结构与连接
(structure & connection)
分析结构 与连接 的目的?
1,认清对象的分类关系
2,认清对象之间的组成关系
3,认清对象属性之间的静态关系
4,认清对象行为之间的动态关系第二章 面向对象技术的基本特征
2.1 对象
2.2 类
2.3 封装
2.4 继承
2.5 消息
2.6 结构与连接
2.7 多态性一般 — 特殊结构军人军官 士兵义务兵
泛化与特化关系例 13,一般 — 特殊结构举例志愿兵第二章 面向对象技术的基本特征
2.1 对象
2.2 类
2.3 封装
2.4 继承
2.5 消息
2.6 结构与连接
2.7 多态性整体-部分结构汽车发动机 车身汽缸
组成关系例 14,整体 — 部分结构举例第二章 面向对象技术的基本特征
2.1 对象
2.2 类
2.3 封装
2.4 继承
2.5 消息
2.6 结构与连接
2.7 多态性
对不同的消息表现出不同的行为
是 OOT 的要点之一
2.6 多态性 (polymorphism)
什么是多态性?
例 15,几何图形类层次中的多态性。其派生类“圆”、“长方形”、“三角形”等都有服务“求面积”。
几何图形圆 长方形 三角形第二章 面向对象技术的基本特征
2.1 对象
2.2 类
2.3 封装
2.4 继承
2.5 消息
2.6 结构与连接
2.7 多态性多态性的作用? 派生类继承了基类的属性和服务后,
可以有自己的不同于基类的数据类型和行为。
第二章 面向对象技术的基本特征
2.1 对象
2.2 类
2.3 封装
2.4 继承
2.5 消息
2.6 结构与连接
2.7 多态性课堂总结
理解掌握下列 OOT特征的定义,
对象、类、封装、继承、消息、
结构与连接、多态性
类的三个组成部分,类名、属性和服务
理解封装与继承的意义,以及与对现实世界抽象的联系。
消息的作用、结构和组成。
了解两种结构形式,一般 — 特殊结构整体 — 组成结构
多态性的作用。
第二章 面向对象技术的基本特征
2.1 对象
2.2 类
2.3 封装
2.4 继承
2.5 消息
2.6 结构与连接
2.7 多态性作 业
p.15,第 1,2,5 题
p.99,第 2,3,4 题教材?