Warum wird die toString () -Methode aufgerufen, wenn ich ein Objekt drucke?

8

Ich kann nicht verstehen, warum, wenn ich die Methode println für das viertel-Objekt verwende, den Wert der toString-Methode zurückgibt. Ich habe nie die toString-Methode aufgerufen, warum bekomme ich den Rückgabewert?

%Vor%     
Nicholas Kong 18.12.2011, 23:44
quelle

5 Antworten

18

Ein Verweis auf Java-Dokumente, was ich feststellen kann,

Wenn Sie die Methode PrintStream class print (obj) / println (obj) aufrufen, ruft sie intern die Methode write mit dem Argument String.valueOf (obj) auf. unten gezeigt:

%Vor%

Nun String.valueOf (obj) ruft die String-Methode wie folgt auf:

%Vor%     
Prateek 11.12.2012 06:06
quelle
3

Weil PrintStream.println eine Überladung hat, die ein Object benötigt, und ruft dann seine toString Methode auf.

    
Oliver Charlesworth 18.12.2011 23:47
quelle
1

Weil diese Funktion so funktioniert: Sie formatiert die primitiven Typen für Sie, aber wenn Sie ein Objekt übergeben, wird% code% darauf aufgerufen.

Wenn Sie es nicht überschreiben, wird es die standardmäßige .toString() Implementierung ( .toString() ) ausgeben, die nicht wirklich nützlich ist ...

    
fge 18.12.2011 23:48
quelle
1

Wenn Sie direkt versuchen, ein Objekt zu drucken, wird standardmäßig die toString -Methode aufgerufen, die Sie zum Überschreiben der toString -Methode benötigen, um die Attribute Ihrer Klasse zu drucken.

    
ues 18.07.2012 18:15
quelle
0

Da alle Klassen in Java Unterklassen von java.lang.Object sind, wird beim Versuch, die System.out.println () -Methode zum Drucken des Objekts aufzurufen, die Methode toString () der Object-Klasse aufgerufen.

Aus Sicherheitsgründen druckt die Methode einen Hashcode, nicht die Werte dieses Objekts. aber Sie haben diese Methode in Ihrer Klasse geerbt und ihre Definition auf Druckobjektwerte erweitert

%Vor%

Sie erhalten also einen Rückgabewert.

    
Sunil Rajput 09.03.2015 14:52
quelle

Tags und Links