类是对一种概念或物理事物的抽象描述,而对象则表示具体的实体。对象具有严格定义的范围并且在应用程序中是有意义的。对象具有下表中所列示的特征:
| 特征 | 描述 |
|---|---|
| 状态 | 状态是一个对象可以存在的条件。对象的状态是通过一组属性来实现的,而这些属性在经过一段时间之后通常会发生变化。 |
| 行为 | 行为用来确定一个对象如何对其他对象发出的请求作出响应。行为是通过一组操作实现的。 |
| 标识 | 对象的标识是唯一的。如果一个类的多个实例中的每个实例都处于相同的状态,那么可以使用对象的唯一标识来区分这些实例。 |
每个对象必须具有唯一名称。完整对象名由三部分组成:对象名、角色名和类名。为一个对象命名时,可以使用这三部分的任意组合。下表显示了一个在线购物系统的多个对象名变化形式。
| 语法 | 示例 | 描述 |
|---|---|---|
| object/role:class | cart100/storage:cart | 在交互期间,cart 类的指定实例(cart100)充当存储器角色。 |
| object:class | cart100:cart | cart 类的指定实例(cart100)。 |
| /role:class | /storage:cart | 在交互期间,cart 类的充当存储器角色的匿名实例。 |
| object/role | cart/storage | 充当存储器角色的名为 cart 的对象。此对象是一个隐藏了类名的对象或者是一个未与类相关联的实例。 |
| object | cart100 | 名为 cart100 的对象。此对象是一个隐藏了类名的实例或者是一个未与类相关联的实例。 |
| /role | /storage | 匿名实例充当存储器角色。此对象是一个隐藏了对象名和类名的实例或者是一个未与对象或类相关联的实例。 |
| :class | :cart | customer 类的匿名实例。 |
下表列示了三种类型的对象。
| 对象类型 | 描述 |
|---|---|
| 活动 | 活动对象拥有控件的线程并且可以启动控制活动。流程和任务都是活动对象类型。 |
| 被动 | 被动对象也拥有数据,但是不启动控制。 |
| 多个实例 | 是同一个类的一组对象或多个实例。多个实例通常用来显示一组对象与单条消息(或激励)进行交互。 |