面向对象
一、面向对象的基本概念
究竟怎样才算真正的面向对象(object-oriented,oo)?
面向对象=对象(objects)
+类(classes)
+继承(inheritance)
+消息通信(communication with messages)
对象:系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。
对象三要素: 对象标识、属性和服务。
封装: 是对象的一个重要原则
两层含义:
1. 全部属性和全部服务紧密结合不可分割的整体
2. 对象是一个不透明的黑盒子,表示对象状态的数据和实现操作的代码都封装在黑盒子里面。
类: 具有相同属性和服务的一个或者一组对象的抽象,类与对象是抽象描述和具体实例的关系,一个具体的对象被称作类的一个实例。
继承与泛化: 用来说明特殊类(子类)与一般类(父类)的关系,通常使用泛化来说明一般类与特殊类之间的关系,它们之间是一对多关系。
多态性与重载: 一般类中定义的属性或服务被特殊类继承后,可以具有不同的数据类型或表现出不同的行为,通常是使用重载和改写两项技术来实现的。
例题:
消息和消息通信:
消息:向对象发出的服务请求,它通常包括提供服务的对象标识、消息名、输入信息和回单信息。
消息通信:面向对象方法学中的一个重要原则,它与对象的封装原则密不可分,为对象间提供唯一合法的动态联系的路径。
面向对象方法学的优点:
1. 与人类习惯的思维方法一致
2. 稳定性好
3. 可重用性好
4. 较易开发大型软件产品
5. 可维护性好
二、面向对象程序设计
继承成员访问控制机制:
三、面向对象分析与设计方法
OOA/OOD
OOA中定义了两种对象类之间的结构:分类结构和组装结构
is a 组合
Booch方法:
Booch认为软件开发是一个螺旋上升的过程,在这个螺旋上升的每个周期中,有以下几个步骤:
- 发现类和对象
- 确定它们的含义
- 找出它们之间的相互关系
- 说明每一个类和对象的界面和实现
静态模型 | 动态模型 | |
---|---|---|
逻辑模型 | 类图 对象图 | 状态装换图 时序图 |
物理模型 | 模块图 进程图 |
OMT方法:
OMT方法定义了三种模型:对象模型、动态模型、功能模型
四、设计模式
1.UML结构
- 构造快
- 建模元素
- 关系
- 图
- 公共机制
- 规格说明
- 修饰
- 公共分类
- 扩展机制
- 规则
- 范围
- 可见性
- 完整性
- 执行
1.用例图:
- 包含关系(抽象用例)
- 扩展关系
2.类图与对象图
2.UML图形
类之间的关系:
- 依赖关系
- 泛化关系(概括关系)
- 关联关系
1)聚合关系(主机与显示器)
2)组合关系(公司与部门,人与心脏) - 实现关系
3.顺序图(序列图)
顺序图与协作图统称为交互图
协作图:
状态图:
活动图:
构件图:
部署图
3.典型例题分析
考点:
-
数据流图
-
面向对象设计
-
数据库设计
-
算法设计/C程序设计
-
C++程序设计
-
JAVA程序设计
-
VB程序设计
-
Web Service
-
信息加密
-
操作系统操作PV