java Comparable 和 Cloneable接口
阿新 • • 發佈:2018-07-20
基本類型 object c png return todo 分享 con mage util
Comparable接口定義了compareTo方法,用於比較對象。
例如,在JavaAPI中,Integer、BigInteger、String以及Date類定義如下
Cloneable接口
Cloneable接口給出了一個可克隆的對象。
若要出現需要創建一個對象拷貝的情況。為了這個目的,需要使用clone方法
Cloneable定義如下:
直接調用clone()話,對象裏面的基本類型數據會直接復制,但引用類型數據,是復制他的引用,這稱為淺復制,不是深復制
package test; import java.util.Date; public class House implements Cloneable,Comparable{ private int id; private double area; private Date whenBuilt; public House(int id,double area) { // TODO Auto-generated constructor stub 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{ return super.clone(); } @Override public int compareTo(Object o) { // TODO Auto-generated method stub if(area > ((House)o).area) { return 1; }else if(area < ((House)o).area) { return -1; }else { return 0; } } public static void main(String [] args) throws CloneNotSupportedException { House house1 = new House(1, 1750.50); House house2 = (House) house1.clone(); } }
這個例子就是直接調用clone() 所以whenbuilt 地址是一樣的,內容也一樣
若把clone()改為這樣
whenBuilt 地址就不一樣了 ,內容一樣
java Comparable 和 Cloneable接口