为什么要重写toString

本文介绍了Java中toString方法的基本概念,包括其作用和默认行为。详细讲解了如何重写toString方法以自定义对象的字符串表示,提供了直接和间接继承自Object类的示例代码。强调了在开发中的重写重要性以提高代码可读性。

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

toString怎么用?

  • 前言
  • 一、什么toString?
  • 二、toString的代码
    • 1.重写前
    • 2.重写直接继承于object类的toString
    • 3.重写间接继承于object类的toString
  • 总结


前言

在开发中,代码量变高之后,常常会需要查看当前对象的一些信息,这时候toString的重写应需而生!


一、什么toString?

在Java中,toString() 方法是 Object 类中定义的一个方法。toString() 方法的作用是返回对象的字符串表示。在没有重写 toString() 方法时,默认情况下返回的字符串表示为“类名@哈希码” (包名+类名@对象的16进制内存地址)的形式。 重写 toString() 方法可以自定义返回的字符串,使得输出的信息更具有可读

二、toString的代码

1.重写前

这里我们先要掌握一个知识点,继承,在我们没有继承任何一个父类之前,是默认继承Object类,也被称为隐式继承,也就是为什么有些方法,我们在自定义类中,没有写,但是可以使用的原因,这里不过多介绍,大家感兴趣可以去仔细阅读以下Object中有哪些方法。

在这里插入图片描述
这里可以看到,在没有重写之前,返回的是类名+@ + 这个类的哈希码值,也就是我们常说的十六进制的一个地址,那我们在开发中很多时候不想要返回地址,想要返回这个类的一系列属性,该怎么做呢?
思路:重写toString方法,使其返回当前自定义类的一些属性

2.重写直接继承于object类的toString

示例:新建一个Person类,不继承于任何类(默认隐式继承于object类)
在这里插入图片描述
箭头的位置,很明显没有extends,那么就代表直接隐式继承于toString类
这个时候我们在类中重写方法,可以直接手动输入public String toString(){ },在括号里书写,也可以快捷键alt + insert,里面有一个toString,可以快捷重写toString。

@Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", sex='" + sex + '\'' +
                ", job='" + job + '\'' +
                ", duty=" + duty + '\'' +
                '}';
    }

这样我们重写后的效果就是输出类名{各种属性名:属性值}了,运行一下看看效果。
在这里插入图片描述
因为是字符串,可修改性比较高,大家可以在重写的时候书写成自己喜欢的样子,我这种是快捷键创建出来的所以比较规范,根据个人喜好进行修改。

3.重写间接继承于object类的toString

那现在直接继承于Object的类会重写toString了,间接继承于Object类的咋办?
一样的,第一种手动去敲,在获取你要重写这个类的属性的时候,因为有些属性是继承于父类的,所以获取属性值的时候我们就需要用get。。。()方法,例如:

我写一个Doctor类继承于Person,然后需要重写toString
在这里插入图片描述

代码:

public String toString() {
        return "Doctor{" +
                "name='" + getName() + '\'' +
                ", age=" + getAge() + '\'' +
                ", sex='" + getSex() + '\'' +
                ", job='" + getJob() + '\'' +
                ", duty=" + getDuty() + '\'' +
                "office='" + office + '\'' +
                '}';
    }

这样就实现了doctor类中所有属性的显示,运行一下看看效果。
在这里插入图片描述


总结

以上就是toString的重写,大家在开发中一定要注意,自定义类(非测试类),都要重写toString,养成好习惯,否则苦不堪言,如果这篇文章帮助到了你,帮忙三连,持续更新中…

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值