Java中重写toString实现对Object类直接输出调用toString方法
目录:程序员成长之旅/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