当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java Overriding toString()用法及代码示例


这篇文章类似于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



相关用法


注:本文由纯净天空筛选整理自 Overriding toString() in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。