zoukankan      html  css  js  c++  java
  • java Comparable 和 Cloneable接口

    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 地址就不一样了 ,内容一样

  • 相关阅读:
    工作的价值
    面对伤害该不该回击
    建议
    利用私有的API获得手机上所安装的所有应用信息(包括版本,名称,bundleID,类型)
    你必须知道的HTTP错误
    静态库制作
    MDM证书申请的流程
    IOS客户端实现RSA加密
    获得appstore里面app的最新的版本信息,进行版本更新
    C语言实现简单php自定义扩展
  • 原文地址:https://www.cnblogs.com/zquan/p/9339244.html
Copyright © 2011-2022 走看看