这篇文章类似于Java中的Overrideing equals方法。考虑以下Java程序:更多
// file name:Main.java
class Complex {
private double re, im;
public Complex(double re, double im) {
this.re = re;
this.im = im;
}
}
// Driver class to test the Complex class
public class Main {
public static void main(String[] args) {
Complex c1 = new Complex(10, 15);
System.out.println(c1);
}
}
输出:
Complex@19821f
输出是类名,然后是“ at”符号,然后是对象的hashCode末尾。 Java中的所有类都直接或间接地从Object类继承(请参见此点1)。 Object类具有一些基本方法,例如clone(),toString(),equals()等。对象中的默认toString()方法将打印“类名@哈希码”。我们可以在类中重写toString()方法以输出正确的输出。例如,在下面的代码中,toString()被覆盖以打印“ Real + i Imag”表格。
// file name:Main.java
class Complex {
private double re, im;
public Complex(double re, double im) {
this.re = re;
this.im = im;
}
/* Returns the string representation of this Complex number.
The format of string is "Re + iIm" where Re is real part
and Im is imagenary part.*/
@Override
public String toString() {
return String.format(re + " + i" + im);
}
}
// Driver class to test the Complex class
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()中使用对象时,我们会得到正确的输出。
参考文献:
Effective Java by Joshua Bloch
相关用法
- Java Overriding equals用法及代码示例
- Java Integer toString()用法及代码示例
- Java BigInteger toString()用法及代码示例
- Java LinkedBlockingQueue toString()用法及代码示例
- Java StringJoiner toString()用法及代码示例
- Java PriorityBlockingQueue toString()用法及代码示例
- Java LinkedBlockingDeque toString()用法及代码示例
- Java AbstractSequentialList toString()用法及代码示例
- Java CopyOnWriteArrayList toString()用法及代码示例
- Java FieldPosition toString()用法及代码示例
注:本文由纯净天空筛选整理自 Overriding toString() in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。