前言:
在Java中,toString方法来自java.lang.Object
类,然后所有对象都继承该Object
类。默认情况下,它的作用是返回对象的字符串表示形式。在实际开发中,重写 toString()
方法可以帮助我们以更易读的形式输出对象信息,尤其在调试和日志记录时尤为有用。
一、看源码:
1.方法来源:java.lang底下的Object类
2.方法定义和注释:
注释意思:
返回对象的字符串表示形式。一般来说,toString方法返回一个“文本表示”此对象的字符串。结果应该是一个简洁但信息丰富的表示,便于阅读。
建议所有子类重写此方法。
Object类的toString方法返回一个字符串,该字符串由对象作为实例的类的名称、@字符、以及哈希码的无符号十六进制表示对象。
换句话说,此方法返回一个等于以下值的字符串:
getClass().getName()+'@'+整数.toHexString(hashCode())
源码解析:
getClass():调用该方法获取对象的运行时类。
getName():获取类的完全限定名(包括包名)。
hashCode():调用
hashCode()
方法,返回对象的哈希码。Integer.toHexString():将哈希码转换为无符号十六进制字符串。
默认的 toString()
实现虽然能唯一标识对象,但通常并不能提供有用的信息。建议所有子类重写 toString()
方法,以提高输出的可读性。
3.小编解读:
该方法放在Object里,就是为了所有类都有一个口子,可以自定义toString方法,有一个优雅易读的返回结果
二、如何重写toString方法
现在有一个学生类。使用默认的toString方法时:
重写方法:
@Override非必要,但建议加上,多一层校验机制。
建议使用Idea自动生成toString方法,再在上面做修改。