网站首页 > 精选教程 正文
要想使用OOP,一定要清楚对象的三个主要特性:
- 对象的行为(behavior)可以对这个对象做哪些操作,或者可以对这个对象应用哪些方法?
- 对象的状态(state)——调用那些方法时,对象会如何响应?
- 对象的标识(identity)——如何区分可能有相同行为和状态的不同对象?
同一个类的所有实例对象都有一种家族相似性,它们都支持相同的行为。一个对象的行为由所能调用的方法来定义。
此外,每个对象都会保存着描述当前状况的信息,这就是对象的状态。对象的状态可能会随着时间而发生改变,但这种改变不是自发的。对象状态的改变必然是调用方法的结果(如果不经过方法调用就可以改变对象状态,这说明破坏了封装性)。
但是,对象的状态并不能完全描述一个对象,因为每个对象都有一个唯一的标识(identity,或称身份)。例如,在一个订单处理系统中,任何两个订单都是不同的,即使它们订购的商品完全相同。需要注意,作为同一个类的实例,每个对象的标识总是不同的,状态也通常有所不同。
对象的这些关键特性会彼此相互影响。例如,对象的状态会影响它的行为(如果一个订单“已发货”或“已付款”,就应该拒绝要求增删商品的方法调用。反过来,如果订单是“空的”,即还没有订购任何商品,就不应该允许“发货”)。
猜你喜欢
- 2024-11-28 java 核心技术-12版 卷Ⅰ- 5.2.3相等测试与继承
- 2024-11-28 java 核心技术-12版 卷Ⅰ- 5.2.4 hashCode方法
- 2024-11-28 Java入门书单
- 2024-11-28 java 核心技术-12版 卷Ⅰ- 4.3.7 隐式参数与显式参数
- 2024-11-28 全网最完整的免费java教程讲义系列(四)——java的流程控制
- 2024-11-28 java 核心技术-12版 卷Ⅰ- 4.6 对象构造 4.6.1重载
- 2024-11-28 java 核心技术-12版 卷Ⅰ- 3.10 数组
- 2024-11-28 java 核心技术-12版 卷Ⅰ- 4.3 自定义类
- 2024-11-28 2019年Java核心技术我整理了200多页pdf,今天分享给你
- 2024-11-28 java 核心技术12版卷1 - 1.3 Java applet 与 Internet
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)