java中的clone方法有设么用?
在实际编程中,经常会遇到某个对象A需要创建一个和他一样具有相同状态的对象B,java中简单的赋值操作是无法达到的,这时候就需要进行克隆。
java中所有的类都继承于Object类,在Object类中提供了一个方法叫clone();这个方法能返回一个Object的对象的复制。在复制中产生的是一个新的对象,而不是一个引用。
如何使用clone()方法尼?
1,实现clone()方法的类应该先继承Cloneable接口,Cloneable是一个标示接口,没有任何方法。
2,重写Object类中的clone()方法。
3,在clone()方法中调用supe.clone()。无论clone类的结构是设么,super.clone()方法会直接或者间接调用java.lang.Object类的clone()方法。
4,把浅复制的引用指向原型对象的新的克隆体。
示例:
public class Obj implements Cloneable {private int aInt = 0 ;public int getInt (){return aInt ;}public void setInt ( int i ){aInt = i ;}public void changInt (){aInt = 1 ;}public Object clone (){Object o = null ;try {o = ( Obj ) super . clone ();} catch ( CloneNotSupportedException e ){e . printStackTrace ();}return o ;}public static void main ( String [] args ){Obj a = new Obj ();Obj b = ( Obj ) a . clone ();b . changInt ();System . out . println ( "a:" + a . getInt ());System . out . println ( "b:" + b . getInt ());}}