📜  在Java中重写toString()(1)

📅  最后修改于: 2023-12-03 15:23:24.778000             🧑  作者: Mango

在Java中重写toString()

在Java中,每个对象有一个toString()方法,它返回一个String对象,该对象描述了该对象的内容。默认情况下,toString()方法返回的是该对象的内存地址。但是,我们可以通过重写toString()方法来改变其默认行为,使其返回对象所包含的信息。

为什么要重写toString()方法?

重写toString()方法的目的是为了方便我们打印出对象的内容。当我们要调试程序时,尤其是涉及到复杂的对象结构时,使用系统默认的toString()方法返回的信息可能不够直观。因此,在我们需要打印出对象内容时,我们可以通过重写toString()方法返回更直观的信息。

如何重写toString()方法?

重写toString()方法很简单,只需要在我们的类中定义一个名为toString()的方法,并在其中返回一个描述该对象的字符串即可。

下面是一个简单的例子,我们定义一个Person类,并在其中重写toString()方法:

public class Person {
    private String name;
    private int age;

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

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

在上面这个例子中,我们重写了Person类的toString()方法。我们将该方法的返回值设置为一个描述Person对象的字符串,其中包含了该对象的姓名和年龄。我们通过在其前面添加“Person{”和结尾处添加“}”来区分该字符串是由Person对象生成的。

如何使用重写后的toString()方法?

在我们的程序中,如果我们需要打印出一个Person对象的内容,我们可以直接调用其toString()方法。由于我们已经重写了该方法,因此可以得到一个描述Person对象内容的字符串。下面是一个简单的例子:

Person p = new Person("Zhangsan", 20);
System.out.println(p.toString());

执行上面这个代码片段,在控制台输出的内容应该是类似这样的:

Person{name='Zhangsan', age=20}
总结

通过重写toString()方法,我们可以自定义一个描述对象内容的字符串,从而方便我们打印出对象的内容。在我们的程序中,使用toString()方法非常普遍,因此我们需要在需要打印对象内容的类中正确地实现toString()方法,以便于我们更好地调试和维护我们的代码。