1  public class House implements Cloneable, Comparable<House> {
  2    private int id;
  3    private double area;
  4    private java.util.Date whenBuilt;
  5    
  6    public House(int id, double area) {
  7      this.id = id;
  8      this.area = area;
  9      whenBuilt = new java.util.Date();
 10    }
 11    
 12    public int getId() {
 13      return id;
 14    }
 15    
 16    public double getArea() {
 17      return area;
 18    }
 19  
 20    public java.util.Date getWhenBuilt() {
 21      return whenBuilt;
 22    }
 23  
 24    @Override /** Override the protected clone method defined in 
 25      the Object class, and strengthen its accessibility */
 26    public Object clone() {
 27      try {
 28        return super.clone();
 29      }
 30      catch (CloneNotSupportedException ex) {
 31        return null;
 32      }
 33    }
 34  
 35    @Override // Implement the compareTo method defined in Comparable
 36    public int compareTo(House o) {
 37      if (area > o.area)
 38        return 1;
 39      else if (area < o.area)
 40        return -1;
 41      else
 42        return 0;
 43    }  
 44  }