Thursday, April 23, 2009

clone

clone()方法是有关如何复制对象本身的方法。可以重写复制方法。

public class Point implements Cloneable{
private int x;
private int y;

public Point(){}
public Point(int x,int y){
this.x=x;
this.y=y;
}

public void setX(int x){
this.x=x;
}
public void setY(int y){
this.y=y;
}

public int getX(){
return x;
}
public int getY(){
return y;
}

public Object clone() throws CloneNotSupportedException{
return super.clone();

}

}


public class CloneDemo {

public static void main(String[] args) throws CloneNotSupportedException{
Table table=new Table();
table.setCenter(new Point(2,3));
Point originalCenter = table.getCenter();

Table clonedTable = (Table)table.clone();
Point clonedCenter = clonedTable.getCenter();

System.out.printf("before:(%d,%d)\n",
originalCenter.getX(),originalCenter.getY());
System.out.printf("cloned:(%d,%d)\n",
clonedCenter.getX(),clonedCenter.getY());

clonedCenter.setX(10);
clonedCenter.setY(10);


System.out.printf("before:(%d,%d)\n",
originalCenter.getX(),originalCenter.getY());
System.out.printf("cloned:(%d,%d)\n",
clonedCenter.getX(),clonedCenter.getY());
}

}

No comments:

Post a Comment