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

Eine gute Antwort wäre:

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 eine Methode toString(), obwohl das für manche Objekte nicht sehr sinnvoll ist.

FRAGE 10:

Die obenstehende println() Methode kann ohne Probleme ausgeführt werden. Bedeutet das, dass das von a referenzierte Objekt auf den Bildschirm kopiert wird?

Inhaltsverzeichnis