Overriding toString() in Java
This post is similar to Overriding equals method in Java. Consider the following Java program:
// 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); } } |
Output:
Complex@19821f
The output is, class name, then ‘at’ sign, and at the end hashCode of object. All classes in Java inherit from the Object class, directly or indirectly (See point 1 of this). The Object class has some basic methods like clone(), toString(), equals(),.. etc. The default toString() method in Object prints “class name @ hash code”. We can override toString() method in our class to print proper output. For example, in the following code toString() is overridden to print “Real + i Imag” form.
// 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); } } |
Output:
10.0 + i15.0
In general, it is a good idea to override toString() as we get get proper output when an object is used in print() or println().
References:
Effective Java by Joshua Bloch
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
Recommended Posts:
- Overriding in Java
- Overriding methods from different packages in Java
- Overriding equals method in Java
- Exception Handling with Method Overriding in Java
- Java.lang.Short toString() method in Java with Examples
- Integer toString() in Java
- Difference between Method Overloading and Method Overriding in Java
- Object toString() Method in Java
- Arrays.toString() in Java with Examples
- Stack toString() method in Java with Example
- AbstractSet toString() method in Java with Example
- PriorityBlockingQueue toString() method in Java
- StringJoiner toString() method in Java
- LinkedBlockingDeque toString() method in Java
- Hashtable toString() Method in Java