【 java 面向对象之 Object 类】toString() 方法的重写

发布于:2023-01-04 ⋅ 阅读:(200) ⋅ 点赞:(0)

📋 个人简介

前言

上一节我们写了Object类中equals()方法的使用以及重写,这一节我总结一下Object类中toString()方法的使用和重写!

toString() 方法的使用

1.toString()方法在 Object 类中定义,其返回值是 String 类型,返回类名和它
的引用地址。
我们来看看源码:

public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }

2.当我们输出一个对象的引用时,实际上就是调用当前对象的toString()方法。

package 重写toString;

public class Demo {
    public static void main(String[] args) {
        Person p = new Person("aniu", 21);
        System.out.println(p);
        //相当于
        System.out.println(p.toString());
    }
}

class Person{
    String name;
    int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

在这里插入图片描述

2.在进行 String 与其它类型数据的连接操作时,自动调用 toString ()方法 。

Date now = new Date ();
System.out.printin("now ="+ now );
//相当于
System.out.printin("now ="+ now.toString ())

3.可以根据需要在用户自定义类型中重写toString()方法,像String、Date、File、包装类等都重写了Object类中的toString()方法!
如 String 类重写了 toString ()方法,返回字符串的值。

String s1= "hello" ;
System.out.println(s1);
//相当于 
System.out.printin(s1.toString());

我们来看看String类中重写的toString()方法:

  public String toString() {
        return this;
    }

4.基本类型数据转换为 String 类型时,调用了对应包装类的 toString ()方法

int a = 10; 
System.out.println("a =" + a );

重写 toString() 方法

手动重写

我们可以手动重写toString()方法,输出我们想要的内容

package 重写toString;

public class Demo {
    public static void main(String[] args) {
        Person p = new Person("aniu", 21);
        System.out.println(p);
        //相当于
        System.out.println(p.toString());
    }
}

class Person{
    String name;
    int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    // 手动重写toString()
    @Override
    public String toString() {
        return "name:" + this.name + " age:" + this.age;
    }
}

在这里插入图片描述

自动重写

像equals()一样,idea也可以帮助我们自动重写toString()方法!

package 重写toString;

public class Demo {
    public static void main(String[] args) {
        Person p = new Person("aniu", 21);
        System.out.println(p);
        //相当于
        System.out.println(p.toString());
    }
}

class Person{
    String name;
    int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

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

在这里插入图片描述

结语

如果你觉得博主写的还不错的话,可以关注一下当前专栏,博主会更完这个系列的哦!也欢迎订阅博主的其他好的专栏。

🏰系列专栏
👉软磨 css
👉硬泡 javascript
👉flask框架快速入门