码迷,mamicode.com
首页 > 编程语言 > 详细

java Comparable 和 Cloneable接口

时间:2018-07-20 11:30:50      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:struct   package   method   pre   imp   []   return   使用   技术   

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接口

标签:struct   package   method   pre   imp   []   return   使用   技术   

原文地址:https://www.cnblogs.com/zquan/p/9339244.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!