1、对象的基本特征
- 每个对象都有自己的唯一标识。
- 对象之间通过消息进行通信。
- 对象总是处于一定的状态。
- 对象有若干种行为,分为三类:创建新对象,与其他对象通信,改变自身状态。
- 对象的状态只能被自身的行为所改变。
- 某个对象的状态可以又多个其他对象的状态构成。
2、对象的不同抽象层次
1)类:静态,在程序中定义。
2)对象:动态,存在与进程中。
3)抽象数据类型ADT
- 是对一组对象的更高层次的抽象。
- ADT=数据+操作。
- ADT的四个段落:
-
- TYPES
- FUNCTIONS
- AXIOMS(公理)
- PRECONDITONS(先决条件)
- ADT VS. 类
-
- 类=ADT+实现
- 类的“瘦极限”(即未进行任何实现)=ADT
- 类的“胖极限”(即完全实现),有效类
- ADT——>类
-
- ADT的规格说明
- 选择一种物理表示法
- 将ADT的功能映射为具体的物理实现
3、基本的类间关系
1)继承:高度抽象方式。
- 空心三角箭头,实线,子类指向父类。
2)聚合
- 性质:传递性,逆对称性。
- 空心菱形箭头,实线,组元类指向组合类。
3)关联
- 链:对象实例之间的物理或概念联结。
- 关联:对一组语义与结构相似的链的抽象。
- 链是关联的实例,关联是链的抽象。
- 关联会破坏封装性。
4)聚合VS.集成
- 聚合:与,is part of
- 继承:或,is a
5)聚合VS.关联
- 聚合是关联的一种特殊形式
4、消息与事件
1)消息:对象之间进行通信的构造或结构。
- 分为请求消息和完成消息两种(按消息模式)。
-
- 消息模式:发送对象,接收对象,内容。
2)事件:对象之间一次消息的传递。
- 多个事件按照时间顺序可构成时间序列。
3)消息VS.事件:静VS.动。
4)消息与对象
- 一个对象能接受不同形式不同内容的多个消息。
- 相同形式的消息可以送往不同的对象。
- 对于相同形式的消息,不同对象有不同对象的解释,可以做出不同的反应。
5)消息与方法
- 对象接收到有效消息后,总会以某种行为做出适当反应。期间,对象行为复用了类操作的代码实现。
- 在某种程度上,消息与方法可视为同义词。但是:消息与代码无关,方法是操作的代码实现。
6)消息传递VS.过程调用
- 消息传递
-
- 当同一发送对象在不同时刻想同一接收对象多次发送相同消息是,接受对象按照其当前状态不同作出不同反应。
- 消息传递可以异步进行,从而允许并行与分布执行。
- 过程调用
-
- 如果过程体中只有局部变量,当同一调用者用相同参数值调用同一过程时,其调用结果在任何时刻都必然相同。
- 过程调用只能同步,其本质是串行执行。
5、多态性
1)含义
- 同一操作对象可以是多个不同类的行为。
- 不同对象接收到同一消息后,可产生完全不同的反映。
- 同一消息可调用不同的方法。
2)目的:允许每个对象以自己最合适的方式去响应共同的消息,增强软件的灵活性和可复用性。
6、面向对象的特性与主题
1)特性
- 标识唯一性
- 分类性
- 多态性
- 继承性
2)主题
- 抽象
- 封装
- 归并数据与行为
- 共享/复用
- 强调对象结构而不是程序结构
- 协同
3)面向对象=对象+分类+继承+消息
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-11-01 19:36:29