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

  • 相关阅读:
    SQL code for the partitoned example
    去掉重复的列名.txt
    末公开的存储过程.txt
    LauncherClass
    Retina时代的前端视觉优化
    获得数据库中表字段的名字.txt
    StaticConstructor.cs
    UNION ALL实现的分级汇总示例.sql
    SignAndSeal
    在现有数据库上还原时的数据文件处理示例.sql
  • 原文地址:https://www.cnblogs.com/zquan/p/9339244.html
Copyright © 2011-2022 走看看