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

  • 相关阅读:
    攻克python3-进程
    攻克python3-线程
    攻克python3-socket
    攻克python3-面向对象
    攻克python3-装饰器
    攻克python3-函数
    攻克python3-文件操作
    算法基础
    MongoDB存储基础教程
    Python操作Excle
  • 原文地址:https://www.cnblogs.com/zquan/p/9339244.html
Copyright © 2020-2023  润新知