Y_csgoto
2019-07-31 10:25
采纳率: 87.5%
浏览 832
已采纳

Java中toString()方法调用的疑问

最近在学习Java时,发现一个对象.toString()之后,还能再.toString(),但是输出结果一样,都是完整类名 + @ + 十六进制的哈希码。

自己重写的toString方法也是可以在一个类时多次调用,而且输出结果相同,所以有些疑惑,这个相同方法的多次调用到底是在干什么,他们两次穿进去的obj应该是不同的(第一次穿进去的是对象a,第二次穿进去的是a.toString())但是最后输出的结果却是一样的,这是为什么呢?

求大佬解答

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • zhshchilss 2019-07-31 10:33
    已采纳

    字符串的toString() 返回的是字符串本身。 当你toString之后,再toString已经是字符串了
    图片说明

    点赞 评论
  • 1-只小猴子 2019-07-31 10:41

    当你第一次.toString()后,此时的结果是一个字符串了,而字符串的toString()就是返回本身,你可以去看下String的源码图片说明

    点赞 评论
  • 大大泡泡糖1996 2019-08-01 10:00

    一般没你这样的写法。
    A a=new A();
    a.toString()//这是打印的对象的地址(前提是你没重写toString方法)
    a.toString().toString()//第一次toString返回的是字符串,也就是String.toString(),当然打印的还是地址啊

    点赞 评论

相关推荐 更多相似问题