为了账号安全,请及时绑定邮箱和手机立即绑定

toString()方法重写的意义是什么?

不懂,难道就是为了输出对象的属性么?但是这里并没有创建Dog对象,何来的属性

正在回答

4 回答

反过来的话,假如没有toString(0方法,那我们所得到的一个对象,是完全不知道里面拥有什么样的值,只有电脑才知道,大大降低了可读性。Dog对象是有创建的,视频中所执行的是哪个Ini??那个类里面的main方法,那里就有Dog对象了。3-8视频有个点,就是。。。控制台输出太小有木有,导致上面还有一个父类构造方法的执行语句没看到,会让很多人看错的呀。http://img1.sycdn.imooc.com//57bd681100011ca511430220.jpg

0 回复 有任何疑惑可以回复我~
#1

sersad 提问者

非常感谢!
2016-11-30 回复 有任何疑惑可以回复我~

主要是根据需求来,当默认的toString()不能满足你对”文本方式表示此对象“时,重写toString(),例如bean类需要在重写的toString 方法中组织自己想要显示的当前对象的信息。

官方文档如下:

public String toString()

返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。

Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:

getClass().getName() + '@' + Integer.toHexString(hashCode())


返回:

该对象的字符串表示形式。

0 回复 有任何疑惑可以回复我~

当你打印一个对象的时候,实际上是调用对象的toString()方法!

这是在类的定义阶段,属性还没有初始化,急什么。

0 回复 有任何疑惑可以回复我~

Dog对象是有一个age属性的。

如果不重写toString()方法,当执行System.out.println(new Dog())时,输出Dog@15db9742类似这样的内容。

如果重写toString()方法,就会输出return后面的内容,显示内容更直观

0 回复 有任何疑惑可以回复我~
#1

sersad 提问者

但是这时候并没有创建Dog对象啊
2015-01-01 回复 有任何疑惑可以回复我~
#2

放学路上的小学生 回复 sersad 提问者

一个包下有好几个呀
2015-05-07 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第二季 升级版
  • 参与学习       530629    人
  • 解答问题       6091    个

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

进入课程

toString()方法重写的意义是什么?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信