【JavaSE】解读Java中的toString方法

前言:

在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方法,再在上面做修改。

相关推荐
什么半岛铁盒4 分钟前
Linux线程与进程关系及底层实现
java·linux·运维
2301_7943339110 分钟前
Maven 概述、安装、配置、仓库、私服详解
java·开发语言·jvm·开源·maven
yunken2810 分钟前
docker容器保存为不依赖基础镜像的独立镜像方法
java·docker·容器
越来越无动于衷13 分钟前
maven私服
java·maven
葬爱家族小阿杰22 分钟前
python执行测试用例,allure报乱码且未成功生成报告
开发语言·python·测试用例
xx155802862xx24 分钟前
Python如何给视频添加音频和字幕
java·python·音视频
酷爱码25 分钟前
Python实现简单音频数据压缩与解压算法
开发语言·python
keepquietl33 分钟前
MQTT示例体验(C)
c语言·开发语言
newxtc38 分钟前
【JJ斗地主-注册安全分析报告】
开发语言·javascript·人工智能·安全