devxlogo

Printing an Object in Java

When you use System.out.println( ) by passing an object as an argument, the JRE invokes its toString( ) method by default. If you haven’t overridden this method, then you end up with very vague output. For example:

//Without overriding the toString() methodpublic class NoImplForToString {    int a, b;    //Constructor    public NoImplForToString(int x, int y) {        a = x; b = y;    }    //main method    public static void main(String args[]) {         System.out.println(new NoImplForToString(11, 65));    }}

You might see this uninformative output:

NoImplForToString@650c437f 

However, if you override the toString() method and provide an implementation that you understand, it definitely will look better?both for presentation and comprehension:

//Overriding the toString() methodpublic class ImplForToString {    int a, b;    //Constructor    public ImplForToString(int x, int y) {        a = x; b = y;    }    // Overriding toString     public String toString( ) {        return "ImplForToString[" + a + "," + b + "]";    }        //main methid    public static void main(String args[]) {         System.out.println(new ImplForToString(11, 65));    }}

This version produces the more useful output:

ImplForToString[11,65]

Charlie has over a decade of experience in website administration and technology management. As the site admin, he oversees all technical aspects of running a high-traffic online platform, ensuring optimal performance, security, and user experience.

See also  How Engineering Leaders Spot Weak Proposals

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.