zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Welchen Typ von Parameter (das Zeug innerhalb der Klammern) erwartet die System.out.println() Methode?

Antwort:

Sie erwartet eine Stringreferenz als Parameter.

Automatischer Aufruf von toString()

Eigentlich kann System.out.println() mit verschiedenen Typen von Parametern umgehen, einer von ihnen ist eine Stringreferenz. Aber es wurde keine Version von System.out.println() geschrieben, die eine Point-Referenz nützen könnte. So dass das folgende nicht aussieht, als ob es funktionieren könnte:

Point a = new Point();  // a ist eine Point-Referenz
System.out.println( a );
                    |
                    +--- sollte eine Stringreferenz sein

Dennoch funktioniert es aus dem folgenden Grund:

Wenn ein Parameter eine Stringreferenz sein sollte, aber stattdessen eine Referenz auf einen anderen Objekttyp übergeben wird, wird Java die toString() Methode des Objekts aufrufen, um eine Stringreferenz zu bekommen.

Alle Objekte (jeden Typs) haben ihre eigene toString() Methode, also wird dieser Trick mit jedem Objekt funktionieren.

FRAGE 10:

(Puzzle: ) Haben Stringobjekte eine toString() Methode?