重写toString()是为了让对象输出更清晰的内容。默认的toString()来自Object类,输出的是类名加哈希码,可读性差。通过重写可以自定义对象的字符串表示形式,便于调试和日志记录。当使用System.out.println(对象)或把对象拼接到字符串时,会自动调用toString()方法。如果不重写,输出类似com.example.Person@1b6d3586,无法看出实际数据。重写后可以打印出对象的关键字段。在类中添加public String toString()方法,返回包含对象信息的字符串,通常包括类名和主要字段值。例如Person类重写toString()后输出Person{name='Alice', age=25}。大多数开发工具支持自动生成toString()方法,如IntelliJ IDEA右键Generate选择toString(),Eclipse通过Source菜单生成。注意事项包括:使用@Override注解、包含关键字段、避免敏感信息、保持方法简洁无副作用。重写toString()虽小但实用。

在Java中重写toString()方法是为了让对象在输出时能以更清晰、有意义的方式展示其内容。默认的toString()来自Object类,输出的是类名加哈希码,可读性差。通过重写这个方法,可以自定义对象的字符串表示形式。
为什么需要重写toString()
当使用System.out.println(对象)或把对象拼接到字符串时,会自动调用toString()方法。如果不重写,输出类似com.example.Person@1b6d3586,无法看出实际数据。重写后可以打印出对象的关键字段,便于调试和日志记录。
如何正确重写toString()
在类中添加一个public String toString()方法,并返回包含对象信息的字符串。通常包括类名和主要字段值。
例如,有一个Person类:
示例代码:
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 +
'}';
}
}
测试输出:
立即学习“Java免费学习笔记(深入)”;
Person p = new Person("Alice", 25);
System.out.println(p); // 输出:Person{name='Alice', age=25}
使用IDE快速生成toString()
大多数开发工具(如IntelliJ IDEA、Eclipse)支持自动生成toString()方法。
- 在IntelliJ中:右键 → Generate → toString()
- 在Eclipse中:Source → Generate toString()
注意事项
重写时建议遵循几点:- 加上
@Override注解,确保正确覆盖父类方法 - 包含关键字段,格式清晰(常用JSON或属性列表风格)
- 避免打印敏感信息(如密码)
- 保持方法简洁,不要有副作用(比如修改对象状态)
toString()是个小操作,但在开发和调试中非常实用。










