覆盖hascode和toString,clone方法

hascode方法

覆盖equals时要覆盖hascode方法.另外覆盖hascode方法能够使的基于散列的集合,如hashtable,hashMap,hashSet分布的更均匀.java

通常重写是将其关键域的hash加起来.这样能获得一个比较好的hash值.设计

在equal对象时,这样能避免相赞成义的对象在比较hash时就没法继续进行比较.调试

toString()方法

通常而言,toString()方法返回的是对象的类名+无符号的十六进制表示法,但在java程序调试中,内存地址没太大的做用.code

因此,覆盖toString()方法,将其关键字段输出,这有利于调试跟踪.对象

clone方法

通常不建议覆盖,不必定能很好的实现.继承

为了继承设计的类,应该将其clone方法设计为protected ,且抛出CloneNotSupportException异常,且不实现Clonable接口接口

若是要实现该方法,则须要实现Clonable接口.复杂的对象不只要拷贝其结构,还有拷贝他的数据.并且还不能调用构造器.内存

因此,通常用拷贝构造器或拷贝工厂实现该功能hash

相关文章
相关标签/搜索