Nein, toString() wandelt nur in einen String um. Ob du den jetzt auf die Console pinselst, in eine Datei schreibst und über eine MessageBox ausgibst, entscheidest du.
Wenn du toString() überschreibst, kannst du es teilweise auch implizit verwenden, das heißt du musst es nicht extra schreiben.
Du könntest auch einfach schreiben
code:
1:
System.out.println(multi);
dann wird automatisch toString() aufgerufen.
Björn
Erst einmal danke für deine Antwort. Allerdings dachte ich immer, dass die toString - Methode genau System.out.println() ersetzen sollte?
eulerscheZahl
versuche mal
code:
1:
System.out.println(multi.toString());
Björn
Ich schließe mich diesem Thema auch einmal an (bin gerade dabei, die toString() Methode zu entdecken).
Die main - Funktion:
code:
1:
2:
3:
4:
5:
6:
package javatostring;
public class JavatoString
{
public static void main(String[] args)
{ Multiplikation multi = new Multiplikation ();
multi.toString(); } }
Die Methode (soll einfach den Text ausgeben)
code:
1:
2:
3:
4:
5:
6:
7:
package javatostring;
public class Multiplikation
{
public String toString()
{
String name = "Test";
return name; } }
Warum bekomme ich denn keine Ausgabe (also Test) angezeigt?
Vielen Dank
Erstsemester
Vielen Dank :-)
Karlito
Weil man nicht unbedingt immer auf die Konsole printen möchte. Man kann ja die Rückgabe auch anderweitig verwenden, z.B. in einer graphischen Oberfläche oder zum debuggen. Weiterhin so ist auch ein einheitlicher Zugriff möglich. Und außerdem kann so der Programmierer der toString Methode entscheiden, was ausgegeben werden soll und wie es ausgegeben werden soll.
Gruß,
Karlito
Erstsemester
Aber warum benutzt man dann toString() und nicht die ganz normale System.out.println () - Funktion?
(Ich wage mal einen Ansatz: Bei System.out.println muss ich ja jeden Befehl einzeln eingeben (name, adresse, usw. --> während toString() die ganzen Daten auf einmal zieht? )
Karlito
Kleine Zusatzinfo: Bei der Verwendung von System.out.println() wird implizit toString() aufgerufen.
code:
1:
2:
3:
4:
Mensch m = new Mensch();
System.out.println(m);
gibt also m.toString() auf der Konsole aus.
Gleiches passiert beim impliziten Cast:
code:
1:
2:
3:
4:
Mensch m = new Mensch();
String s = "Mensch: " + m;
Hier wird auch m.toString() aufgerufen um m an einen String zu konkatenieren. Der Ausdruck ist also äquivalent zu:
code:
1:
2:
3:
4:
Mensch m = new Mensch();
String s = "Mensch: " + m.toString();
Gruß,
Karlito
Erstsemester
Danke dir :-)
Es sind weitere Beiträge zu diesem Thema vorhanden. Klicken Sie hier, um sich alle Beiträge anzusehen.