老师这个toString搞不明白有什么用

老师这个toString搞不明白有什么用

equals重写我知道是可以判断两个不同地址里面的属性是否相同,但toString方法重写我搞不懂有什么用,就按你视频中说的那样的话 我可以随便写个方法也一样能有那样的效果啊  不一定要重写toString方法啊

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小脸 2020-02-28 18:43:53

同学你好,

当toString方法没有重写时,输出的是对象所在的类及对应的堆空间对象实体的首地址值。

这是JDK中toString的源码,如图所示:

http://img1.sycdn.imooc.com//climg/5e58eec60986b84b06760065.jpg

所以当执行System.out.println(one.toString)时,输出

http://img1.sycdn.imooc.com//climg/5e58ee260947430304880098.jpg

这样的内容。

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

http://img1.sycdn.imooc.com//climg/5e58ee3c0922d61104110110.jpg

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~


  • 提问者 云小君 #1
    Person p = new Person("李明",18,"男"); //打印输出对象信息 System.out.println(p); System.out.println(p.toString()); 意思就是如果我不重写toString的话 输出P跟P.toString();都是对象地址,我重写了的话不管输出谁 返回的都是重写后toString里面的内容,那我感觉这个toSring也没啥用啊,不应该像视频中说的那样会经常重写呀
    2020-02-28 19:23:07
  • 好帮手慕小脸 回复 提问者 云小君 #2
    同学你好,当我们打印一个对象的引用时,实际是默认调用这个对象的toString()方法的。老师在上面也已经说到,当toString方法没有重写时,输出的是对象所在的类及对应的堆空间对象实体的首地址值。但如果我们想获取的toString方法中的值就需要去重写toString。所以toString的使用频率才会高的。 如果我的回答解决了你的疑惑,请采纳,祝学习愉快~ 如果我的回答解决了你的疑惑,请采纳,祝学愉快~
    2020-02-29 10:27:54
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师