📅  最后修改于: 2023-12-03 14:45:41.479000             🧑  作者: Mango
在Java中,每个类都会默认继承Object类,在Object类中有一个tostring()方法,用于返回该对象的字符串表示形式。
如果一个类没有覆盖该方法,那么调用该方法时返回的就是该对象的地址。但通常我们需要返回对象有意义的字符串表示,以方便我们观察和调试程序。
因此,我们可以在自己的类中覆盖该方法,来返回我们期望的字符串表示形式。
以下是tostring()方法的语法:
public String toString()
该方法是公有的,返回一个字符串类型,方法名为toString(),没有参数。
我们可以覆盖toString()方法来自定义一个类的字符串表示形式。例如:
public class MyClass {
private int value1;
private String value2;
public MyClass(int value1, String value2) {
this.value1 = value1;
this.value2 = value2;
}
@Override
public String toString() {
return "MyClass{" +
"value1=" + value1 +
", value2='" + value2 + '\'' +
'}';
}
}
上面的例子中,我们在MyClass类中覆盖了toString()方法,返回了一个包含该类成员变量值的字符串。
覆盖toString()方法是很常见的一种做法,用于在调试时输出对象的信息。在使用System.out.println()或者是日志打印工具Log时,使用对象的toString()方法可以方便我们快速输出对象的信息。
同时,toString()方法的确是一个很便捷的方法,我们只需要在覆盖时返回一个包含该对象必要信息的字符串即可,toString()方法的返回结果还可以作为该对象的哈希码值的输出方式。
覆盖toString()方法可以提高代码的可读性,输出对象的信息便于我们观察和调试我们的程序。在重写该方法时,我们也不应该忘了它可以被哈希码等方法使用,因此返回的字符串应该包括尽可能多的必要信息。