读书人

Object种分析equals、hashcode、clone

发布时间: 2012-12-24 10:43:13 作者: rapoo

Object类分析equals、hashcode、clone
Object类中的equals:

    class User implements Cloneable {          String name;          int age;                @Override          public User clone() throws CloneNotSupportedException {              return (User) super.clone();          }      }            class Account implements Cloneable {          User user;          long balance;                @Override          public Account clone() throws CloneNotSupportedException {              Account account = null;                    account = (Account) super.clone();              if (user != null) {                  account.user = user.clone();              }                    return account;          }      }  

clone三部曲。
1 声明实现Cloneable接口。
2 调用super.clone拿到一个对象,如果父类的clone实现没有问题的话,在该对象的内存存储中,所有父类定义的field都已经clone好了,该类中的primitive和不可变类型引用也克隆好了,可变类型引用都是浅copy。
3 把浅copy的引用指向原型对象新的克隆体。

读书人网 >编程

热点推荐