控制System.out.println()输出值

本文介绍如何通过重写Student类的toString方法,实现对象信息的高效输出,避免频繁修改代码。讲解了System.out.println底层原理及多态应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引子

我现在有一个Student类
在这里插入图片描述
创建一堆Student对象,把它们放进Student数组中
在这里插入图片描述
现在我想输出这些Student对象的信息,我们正常想到的方式是这样的
在这里插入图片描述
但是每次输出都要在 System.out.println() 函数中写这么长的代码好麻烦,而且如果想要添加新属性的话需要找到这些输出一个一个改,有没有什么办法能一劳永逸的解决这个问题呢

解决

我们都知道 Object 类是所有类的父类,而 System.out.println() 底层输出的是Object对象中 toString() 方法的返回值

我们只需要在 Student 类中重写这个 toString() 方法,使其返回值变为想要输出的信息, 如下
在这里插入图片描述
这样,我们输出时就可以直接把 对象 放进 System.out.println()了,如下图:

在这里插入图片描述

输出结果如下:
在这里插入图片描述

底层源码

先看 System.out.println() 的源码
在这里插入图片描述
发现其输出的值为String.valueOf()方法的返回值

接着,我们点开 String.valueOf() 的源码
在这里插入图片描述
发现其调用的是 Object对象toString() 方法

继续点开
在这里插入图片描述
由于 Object类 是所有 引用数据类型(类) 的父类,

根据 多态 规则:子类可以重写父类的 非 private 的、非 fianl 的方法

我们通过 重写Object类的toString()方法 即可控制System.out.println()的输出值

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值