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

 我来答
ahyyxx222
2011-08-21 · TA获得超过2532个赞
知道小有建树答主
回答量:1405
采纳率:33%
帮助的人:1201万
展开全部
不一定要重写,有自己的需要才重写。
为什么重写先弄明白它们的用途,equals是为了比较是否相等。
比如你有两个User,现在某个软件的要求是只要它们id属性相同就是相等的,那就可以重写eqauls,只对id进行对比。
toString是为了让你更容易看懂一个对象,当对象在控制台打印出来时你想看到一堆无意义的代码吗?那就是调用默认的toString的结果。你可以重写自己想要的输出,看到对象的每个属性。
hashCode是hash集合中用来对比是否相等的根据,是一个根据对象内容算出来的数值,对比起来比equals快得多。更具体的解释你自己百度搜吧,很多东西要深入认识也不是几句话就能说明白的。
forlml
2011-08-21 · TA获得超过733个赞
知道小有建树答主
回答量:503
采纳率:0%
帮助的人:451万
展开全部
equlas这个看你个人需要,比如说你需要比较对象的是否在逻辑上相同,那么就需要重写equlas。(因为默认的equlas是对比两个对象是否同一个引用)
toString则也是看个人需要,因为当你用System.out.println()来打印对象时就是打印toString的内容。如果你把toString的内容定义得很通俗易懂,那么你调试代码的时候会方便些。
hashCode则跟着equlas变,当equlas被复写了,那么hashCode一般也要求复写。即要求当equlas返回true时,被比较的两个对象的hashCode应当一致;当为false时,hashCode则应当不一致。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
boxeo024zgn
2011-08-23 · TA获得超过2601个赞
知道小有建树答主
回答量:870
采纳率:0%
帮助的人:517万
展开全部
equal();判断两对象是否相等
hashcode();为对象在容器中添加一个标识;
toString();把对象转成字符串;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ac79ce96b
2011-08-21
知道答主
回答量:47
采纳率:0%
帮助的人:25万
展开全部
上面的回答已经很全了,写他们可以在myeclipse或者eclipse的工具栏里选择source里面的自动生成equals,toString,hashCode方法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhaoqqxx
2011-08-22 · TA获得超过200个赞
知道答主
回答量:56
采纳率:0%
帮助的人:65.3万
展开全部
java有默认的实现,你可以根据需要重写
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式