对象克隆:
将一个对象进行复制(对象的内容相同),开辟新的内存地址。
浅克隆:
关联对象只是进行地址引用,并没有创建新的对象,只将关联对象的地址指向原始引用对象。
深克隆:
关联对象也进行复制,创建新的对象
实现深克隆:
方式1:类实现Cloneable接口,在每一层类中都重写clone方法,但是层级多了,比较麻烦。
方式2:序列化 对象的输入输出(流),类要实现Serializble接口
类与类之间的关系
1.依赖关系:
在一个类的方法中,使用到了另一个,具有临时性 use-a
2.关联关系:
Has-a
一个类是另一个类的属性
单向关联
双向关联
自关联
根据关联的强弱程度分为{ 组合(强)、聚合(弱) }
聚合关系
成员对象是整体对象的一部分,但是成员对象可以脱离整体对象而独立存在。
例如:学校与老师的关系,学校包含老师,但如果学校停办了,老师依然存在。
组合关系
整体对象可以控制部分对象的生命周期,一旦整体对象不存在,部分对象也将不存在, 部分对象不能脱离整体对象而存在。例如,头和嘴的关系,没有了头,嘴也就不存在了。
3.继承关系
继承关系是对象之间耦合度最大的一种关系,表示一般与特殊的关系,是父类与子类之间的关系
Is-a
4.实现关系
接口与实现类之间的关系,接口与实现类之间的关系。
例如,汽车和 船实现了交通工具