toString() in einer Klasse überschreiben
Ein Überschreiben der Methode toString() der Klasse java.lang.Object kann gut u.a. zu Zwecken des Debugging genutzt werden.
Alle Klassen erben in Java letztlich die in java.lang.Object implementierten Methoden. Dies führt u.a. dazu, dass ein Objekt als Parameter einer der PrintStream-Methoden print() oder println() ausgegeben werden kann, da bei Übergabe die Methode toString() implizit aufgerufen wird.
System.out.println(myObject);   // myObject@b815859
Die etwas kryptische Ausgabe resultiert daraus, dass diese der Routine
getClass().getName() + "@" + Integer.toHexString(hashCode());
entspringt. Das heißt somit, dass die PrintStream-Ausgabe eines Objektes per print() oder println() lediglich aus dessen Namen (mit Package-Angabe) und dessen Hash-Repräsentation getrennt durch ein '@' besteht.
Dies lässt sich durch Überschreiben in eine persönlich nützlichere Form ändern:
public class ToStringUeberschreiben {

private String s = "Hallo Welt!";
private int i = 10;
public static final double pi = 3.14;

    public static void main(String[] args) {
        System.out.println(new ToStringUeberschreiben());
    }
    
    public String toString(){
        return this.s + " | " + this.i + " | " + pi;
    }
}

Hier wird die Methode toString() neu implementiert, indem eine Ausgabe der Members der Klasse eingerichtet wird. Die Tatsache, dass die Methode nicht explizit aufgerufen wird zeigt, dass dies als Standard-Routine im Hintergrund geschieht.

letzte Änderung an:
switch-case-Verzweigung