📦 归档笔记 — 原创建于 WizNote,仅作归档展示;观点以当年为准,非最新。

Java中重写toString实现对Object类直接输出调用toString方法

创建时间2019-03-27最后修改2019-03-28原位置/程序员成长之旅/Java学习/笔记/字数434图片/附件14
目录:程序员成长之旅/Java学习/笔记

原问题

"

为什么写一个toString方法之后 直接打印对象就能获得toString的返回值?

🖼 图片占位(归档模式)图片见原始导出:Java%E4%B8%AD%E9%87%8D%E5%86%99toString%E5%AE%9E%E7%8E%B0%E5%AF%B9Object%E7%B1%BB%E7%9B%B4%E6%8E%A5%E8%BE%93%E5%87%BA%E8%B0%83%E7%94%A8toString%E6%96%B9%E6%B3%95.assets/0.622754364066928.png

"

原因:这是对java.lang.Object的toString方法的重写

🖼 图片占位(归档模式)图片见原始导出:Java%E4%B8%AD%E9%87%8D%E5%86%99toString%E5%AE%9E%E7%8E%B0%E5%AF%B9Object%E7%B1%BB%E7%9B%B4%E6%8E%A5%E8%BE%93%E5%87%BA%E8%B0%83%E7%94%A8toString%E6%96%B9%E6%B3%95.assets/VV_4NWJWQDF1%40%5BWL0UJ4MSV.png
🖼 图片占位(归档模式)图片见原始导出:Java%E4%B8%AD%E9%87%8D%E5%86%99toString%E5%AE%9E%E7%8E%B0%E5%AF%B9Object%E7%B1%BB%E7%9B%B4%E6%8E%A5%E8%BE%93%E5%87%BA%E8%B0%83%E7%94%A8toString%E6%96%B9%E6%B3%95.assets/%29%293301YGDMQH19RMUXE7QON.png

若不重写会直接返回 对象的全限定名+ 标记符“@”和此对象哈希码的无符号十六进制

情况模拟

🖼 图片占位(归档模式)图片见原始导出:Java%E4%B8%AD%E9%87%8D%E5%86%99toString%E5%AE%9E%E7%8E%B0%E5%AF%B9Object%E7%B1%BB%E7%9B%B4%E6%8E%A5%E8%BE%93%E5%87%BA%E8%B0%83%E7%94%A8toString%E6%96%B9%E6%B3%95.assets/506df47dfb12487e2dd9419887729beb.png
🖼 图片占位(归档模式)图片见原始导出:Java%E4%B8%AD%E9%87%8D%E5%86%99toString%E5%AE%9E%E7%8E%B0%E5%AF%B9Object%E7%B1%BB%E7%9B%B4%E6%8E%A5%E8%BE%93%E5%87%BA%E8%B0%83%E7%94%A8toString%E6%96%B9%E6%B3%95.assets/d84d13775cd754b40e82c0e302c00784.png

重写            

🖼 图片占位(归档模式)图片见原始导出:Java%E4%B8%AD%E9%87%8D%E5%86%99toString%E5%AE%9E%E7%8E%B0%E5%AF%B9Object%E7%B1%BB%E7%9B%B4%E6%8E%A5%E8%BE%93%E5%87%BA%E8%B0%83%E7%94%A8toString%E6%96%B9%E6%B3%95.assets/VV_4NWJWQDF1%40%5BWL0UJ4MSV_2.png

🖼 图片占位(归档模式)图片见原始导出:Java%E4%B8%AD%E9%87%8D%E5%86%99toString%E5%AE%9E%E7%8E%B0%E5%AF%B9Object%E7%B1%BB%E7%9B%B4%E6%8E%A5%E8%BE%93%E5%87%BA%E8%B0%83%E7%94%A8toString%E6%96%B9%E6%B3%95.assets/%29%293301YGDMQH19RMUXE7QON_2.png