对象内有多个对象型的成员变量怎么实现深克隆
浅克隆和深克隆 在Java语言中,数据类型分为值类型(基本数据类型)和引用类型,值类型包括int、double、byte、boolean、char等简单数据类型,引用类型包括类、接口、数组等复杂类型。浅克隆和深克隆的主要区别在于是否支持引用类型的成员变量的复制。 1、浅克隆 在浅克隆中,如果原型对象的成员变量是值类型,将复制一份给克隆对象;如果原型对象的成员变量是引用类型,则将引用对象的地址复制一份给克隆对象,也就是说原型对象和克隆对象的成员变量指向相同的内存地址。 简单来说,在浅克隆中,当对象被复制时只复制它本身和其中包含的值类型的成员变量,而引用类型的成员对象并没有复制。 在Java语言中,通过 覆盖Object类的clone()方法可以实现浅克隆 。 浅克隆的实现: 1. 被复制的类需要实现Clonenable接口 (不实现的话在调用clone方法会抛出CloneNotSupportedException异常), 该接口为标记接口(不含任何方法) 2. 覆盖clone()方法,访问修饰符设为public 。 方法中调用super.clone()方法得到需要的复制对象 。(native为本地方法) class Student implements Cloneable{ private int number; public int getNumber() { return