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