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

相关推荐
Miraitowa_cheems24 分钟前
LeetCode算法日记 - Day 11: 寻找峰值、山脉数组的峰顶索引
java·算法·leetcode
海梨花29 分钟前
【从零开始学习Redis】项目实战-黑马点评D2
java·数据库·redis·后端·缓存
共享家952730 分钟前
linux-高级IO(上)
java·linux·服务器
Sammyyyyy36 分钟前
2025年,Javascript后端应该用 Bun、Node.js 还是 Deno?
开发语言·javascript·node.js
橘子郡12337 分钟前
观察者模式和发布订阅模式对比,Java示例
java
指针满天飞37 分钟前
Collections.synchronizedList是如何将List变为线程安全的
java·数据结构·list
Java技术小馆38 分钟前
重构 Controller 的 7 个黄金法则
java·后端·面试
金銀銅鐵1 小时前
[Java] 以 IntStream 为例,浅析 Stream 的实现
java·后端
William一直在路上1 小时前
Python数据类型转换详解:从基础到实践
开发语言·python
看到我,请让我去学习2 小时前
Qt— 布局综合项目(Splitter,Stacked,Dock)
开发语言·qt