// Interface Cloneable defined in package java.lang
/** Marker interface */
/** 实现Cloneable 接口的类标记为可克隆的,而且它的对象可以使用在
* Object 类中定义的clone() 方法克隆
* protected native Object clone() throws CloneNotSupportedException
*/
import java.util.Date;
interface Ediable {
}
class House implements Cloneable, Comparable {
private int id;
private double area;
private java.util.Date whenBuilt;
public House(int id, double area) {
this.id = id;
this.area = area;
whenBuilt = new Date();
}
public int getId() {
return id;
}
public double getArea() {
return area;
}
public Date getWhenBuilt() {
return whenBuilt;
}
public Object clone() throws CloneNotSupportedException {
Object o = super.clone(); // Shallow copy
// Deep copy
((House) o).whenBuilt = (Date) whenBuilt.clone();
return o;
}
public int compareTo(Object o) {
if(area > ((House) o).area)
return 1;
else if(area > ((House) o).area)
return -1;
else
return 0;
}
}
public class Test {
public static void main(String[] args) throws CloneNotSupportedException {
House house1 = new House(1, 140);
System.out.println(house1.getWhenBuilt());
House house2 = (House) house1.clone();
System.out.println(house2.getWhenBuilt());
System.out.println(house1.getWhenBuilt() == house2.getWhenBuilt());
}
}
Sat May 10 02:33:57 CST 2014
Sat May 10 02:33:57 CST 2014
false
今天的文章Cloneable分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/12019.html