为什么要重写tostring()方法?

vincevincevincevince 2010-12-20 09:09:25
为什么要重写tostring()方法?
又为什么要重写hashcode()。什么时候重写这些方法
...全文
4314 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
sailor_moon2 2012-07-17
  • 打赏
  • 举报
回复
能举几个经典的例子吗?
shaosijun2004 2010-12-24
  • 打赏
  • 举报
回复
程序需要,或者自己需要,不然没必要重写
风影萧诺 2010-12-24
  • 打赏
  • 举报
回复
重写还是问了想要自己得到的结果。。。。
super254 2010-12-24
  • 打赏
  • 举报
回复
首先说toString()、hashcode()这2个方法不是一定要重写的,所以不存在为什么要重写这2个方法的说法。
那什么时候需要重写这2个方法呢:
一个类对象作为参数传入到System.out.println()中时会调用这个对象的toString()方法,如果没有重写toString()方法的话,调用的就是Object类的toString()方法,那么输出信息没有实际意义。还有在debug时候中也会用到这个方法,但作用不大。
调用对象的equals()方法时会调用hashcode()这个方法,如果不重写hashcode()的话一般达不到想要的效果
wsyangdayong 2010-12-24
  • 打赏
  • 举报
回复
当父类的方法不满足你新的需求时就可以重写改方法
Mr.小铭 2010-12-20
  • 打赏
  • 举报
回复
根据你的需求来吧``
handsome_huxiulei 2010-12-20
  • 打赏
  • 举报
回复
嗯 这个问题 一直都不是很清楚 也经常看人家这么高 自己也搞过 知其一不知其二呐...
谁是莫默的呢 2010-12-20
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20101219/21/f9b87142-6509-4f69-9acd-2bc66ec3a54e.html?20330

这个帖子里的代码就是很好的例子。你看看。

原理,就是重写咯。

每个自定义类都 继承自Object类。Object类的toString 方法是获取对象在内存中的值。

如果你的自定义类不需要这个信息,而是想要 如上面例子所要求的 打印各个对象的熟悉,这是就可以重写这个toString()方法实现自己要的格式。

重写 是会默认调用子类的方法。
孤独剑客 2010-12-20
  • 打赏
  • 举报
回复
如果重写能帮助自己, 那么重写, 否则, 没有必要...
yingying0406 2010-12-20
  • 打赏
  • 举报
回复
都不是必须重写的,有需要才重写的
hei_apple 2010-12-20
  • 打赏
  • 举报
回复 3
我是新手,说的不算数哈。
所有java的类的父类是java.lang,在这个类里面有一个tostring函数是用来显示一些关于这个对象的hashcode等相关信息,当你要显示一个对象的时候,系统会自动调用这个对象的tostring方法,而它显示的都是一些系统数据,例如hashcode。如果你想显示你想要的东西,那么就应该重写这个类,把这个函数给覆盖了,那么系统就会调用你写的tostring方法,可以显示你想要的方法
liaojianbiao 2010-12-20
  • 打赏
  • 举报
回复
当进行输出操作,java会调用toString,当涉及到hash操作java会调用hashcode方法对返回值进行比较
liaojianbiao 2010-12-20
  • 打赏
  • 举报
回复
我个人理解:重写toString是对对象打印输出的一种格式化。当你print一个对象是你需要这个对象在打印时展现的是什么形态你就把toString重写成你需要的返回形态。重写hashcode主要是为了规定对象之间的比较方式。如果你把对象存入hash集合,集合就会对对象的hashcode进行比较以区分两个对象是否是同一对象。
昵称很不好取 2010-12-20
  • 打赏
  • 举报
回复
比如当某个对象和String相连的时候,有时候系统提供的toString不能满足要求,这个时候需要重写toString方法,来实现特定的功能,否则可能会打印引用地址之类的信息
  • 打赏
  • 举报
回复
能帮我举个例子吗。帮我分析下底层原理。谢谢
qunhao 2010-12-20
  • 打赏
  • 举报
回复
等你又需求的时候就需要重写。需求是多样的。。。
谁是莫默的呢 2010-12-20
  • 打赏
  • 举报
回复
没有一定要写toString().

一般toString()方法会应用在自己bean类中。根据需要 在重写的toString 方法中 组织自己想要显示的当前对象的信息。

比如按一定规则格式返回 所以属性的名称及值。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧