java新建类中为什么要重写equals,toString,hashCode方法?写他们有什么框架或者方法?

如题所述

不一定要重写,有自己的需要才重写。
为什么重写先弄明白它们的用途,equals是为了比较是否相等。
比如你有两个User,现在某个软件的要求是只要它们id属性相同就是相等的,那就可以重写eqauls,只对id进行对比。
toString是为了让你更容易看懂一个对象,当对象在控制台打印出来时你想看到一堆无意义的代码吗?那就是调用默认的toString的结果。你可以重写自己想要的输出,看到对象的每个属性。
hashCode是hash集合中用来对比是否相等的根据,是一个根据对象内容算出来的数值,对比起来比equals快得多。更具体的解释你自己百度搜吧,很多东西要深入认识也不是几句话就能说明白的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-21
equlas这个看你个人需要,比如说你需要比较对象的是否在逻辑上相同,那么就需要重写equlas。(因为默认的equlas是对比两个对象是否同一个引用)
toString则也是看个人需要,因为当你用System.out.println()来打印对象时就是打印toString的内容。如果你把toString的内容定义得很通俗易懂,那么你调试代码的时候会方便些。
hashCode则跟着equlas变,当equlas被复写了,那么hashCode一般也要求复写。即要求当equlas返回true时,被比较的两个对象的hashCode应当一致;当为false时,hashCode则应当不一致。
第2个回答  2011-08-23
equal();判断两对象是否相等
hashcode();为对象在容器中添加一个标识;
toString();把对象转成字符串;
第3个回答  2011-08-21
上面的回答已经很全了,写他们可以在myeclipse或者eclipse的工具栏里选择source里面的自动生成equals,toString,hashCode方法。
第4个回答  2011-08-22
java有默认的实现,你可以根据需要重写