📅  最后修改于: 2020-03-20 14:16:07             🧑  作者: Mango
这篇文章类似于Java中的重写equals方法。考虑以下Java程序:
// 文件名: Main.java
class Complex {
private double re, im;
public Complex(double re, double im) {
this.re = re;
this.im = im;
}
}
// 测试代码
public class Main {
public static void main(String[] args) {
Complex c1 = new Complex(10, 15);
System.out.println(c1);
}
}
输出:
Complex@19821f
输出是类名,然后是“ at”符号@,然后是object的hashCode的末尾。Java中的所有类都直接或间接地从Object类继承(请参见链接)。Object类具有一些基本方法,例如clone(),toString(),equals()等。Object中的默认toString()方法打印“类名@哈希码”。我们可以在类中重写toString()方法以输出正确的输出。例如,在以下代码中,toString()被重写以打印“ Real + i Imag”表格。
// 文件名: Main.java
class Complex {
private double re, im;
public Complex(double re, double im) {
this.re = re;
this.im = im;
}
// 重写toString()
@Override
public String toString() {
return String.format(re + " + i" + im);
}
}
// 测试代码
public class Main {
public static void main(String[] args) {
Complex c1 = new Complex(10, 15);
System.out.println(c1);
}
}
输出:
10.0 + i15.0
通常,重写toString()是一个好主意,因为当在print()或println()中使用对象时,我们会得到正确的输出。