Open In App

Overriding toString() Method in Java

Last Updated : 25 Feb, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

Java being object-oriented only deals with classes and objects so do if we do require any computation we use the help of object/s corresponding to the class. It is the most frequent method of Java been used to get a string representation of an object. Now you must be wondering that till now they were not using the same but getting string representation or in short output on the console while using System.out.print. It is because this method was getting automatically called when the print statement is written. So this method is overridden in order to return the values of the object which is showcased below via examples.

Example 1:

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);
    }
}


Output

Complex@214c265e

Output Explanation: The output is the class name, then ‘at’ sign, and at the end hashCode of the 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 the toString() method in our class to print proper output. For example, in the following code toString() is overridden to print the “Real + i Imag” form.

Example 2:

Java




// Java Program to illustrate Overriding
// toString() Method
 
// Class 1
public class GFG {
     
    // Main driver method
    public static void main(String[] args) {
         
        // Creating object of class1
        // inside main() method
        Complex c1 = new Complex(10, 15);
         
        // Printing the complex number
        System.out.println(c1);
    }
}
// Class 2
// Helper class
class Complex {
     
    // Attributes of a complex number
    private double re, im;
     
    // Constructor to initialize a complex number
    // Default
    // public Complex() {
    //     this.re = 0;
    //     this.im = 0;
    // }
     
    // Constructor 2: Parameterized
    public Complex(double re, double im) {
         
        // This keyword refers to
        // current complex number
        this.re = re;
        this.im = im;
    }
    // Getters
    public double getReal() {
        return this.re;
    }
    public double getImaginary() {
        return this.im ;
    }
    // Setters
    public void setReal(double re) {
        this.re = re;
    }
    public void setImaginary(double im) {
        this.im = im;
    }
    // Overriding toString() method of String class
    @Override
    public String toString() {
        return this.re + " + " + this.im + "i";
    }
}


 
 

Output

10.0 + 15.0i

 

 

 



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads