Cloneable
来源:互联网 发布:linux vi命令退出编辑 编辑:程序博客网 时间:2024/05/22 13:10
// 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
/** 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
0 0
- Cloneable
- Cloneable
- Cloneable
- Cloneable
- Cloneable
- Java Cloneable
- cloneable接口
- Cloneable接口
- Cloneable 接口
- Cloneable类
- Cloneable接口
- Cloneable接口
- cloneable接口
- Cloneable接口分析
- java.lang.Cloneable翻译
- java 类反射 Cloneable
- java.lang.Cloneable接口
- Java中Cloneable接口
- android ScrollView详解
- oc 利用retain关键字自动管理内存
- android 2.3 StrictMode 使用
- 如何确定excel中的最后一行行号
- ViewGroup详解
- Cloneable
- oc protocol 的使用方法(相当于java的接口)
- Android 学习笔记16:Menu 和 action bar
- android Gesture
- vs2008出现“Microsoft Incremental Linker已停止工作”解决办法
- 最近三个月的计划算法学习计划
- LA2218 Triathlon 半平面交
- enum类型的本质
- JDK动态代理