其实就是从一个对象再创建另外一个可定制的对象,而且不需要任何创建的细节。
浅复制,如果字段是值类型的,则逐位复制。如果是引用类型,复制引用不复制引用的对象,所以原始对象及其复本引用同一对象。复制时直接调用clone 函数就可以了。原本的类不用做什么改动。
深复制,把引用对象的变量指向复制过来的新对象,而不是原有的被引用的对象。实现方法:建立私有构造函数来调用引用的clone 函数来赋值引用,然后在自身的clone 函数先调用私有构造函数创建复本并设置复本其他值类型和原有的一样,这样复本的引用就是clone 出来的。
一些特定场合会涉及深浅复制,比如数据集对象dataset ,可能会有两个函数,一个是只复制结构不复制数据,另一个是两者皆复制。