# Was ist toString ???



## Hoschi49 (6. Aug 2004)

```
class Winkel
{   double Alpha;
    public Winkel (double alpha)
    {   Alpha=alpha;
    }
    public String toString ()
    {   return ""+Alpha; 
            // einfache Umwandlung von double zu String
    }
}
```

was ich nicht verstehe: wieso eine methode tostring, wenn sie nirgendswo aufgerufen wird ?

oder erfolgt das aufrufen erst im Hauptprogramm : Winkel w = new ( winkel )
                                                                           system.out.println(w.toString)


geht nciht auch system.out.println(w.Alpha) ?


----------



## Beni (6. Aug 2004)

Der Witz ist, dass alle Objekte diese Methode besitzen.

Du kannst jetzt also schreiben:

```
Object object = null;

if( [ blupp ] )
  object = new Winkel( 123 );
else
  object = "Ich bin ein String";

System.out.println( "Das Objekt sagt über sich: " + object.toString() );
```

Und du musst _nicht_ wissen, was object wirklich ist, um den String zu erhalten.


----------



## bygones (6. Aug 2004)

Hoschi49 hat gesagt.:
			
		

> geht nciht auch system.out.println(w.Alpha) ?


nein kannst du nicht - da du nicht weißt wie die toString Methode eines Objekts implementiert ist. Daher sollte man immer toString aufrufen wenn man die String repräsentation haben will !


----------



## Reality (6. Aug 2004)

Hi Hoshi,
in deinem Fall hast du die Methode toString() überschrieben, das geht auch. Diese Methode ist in java.lang enthalten, die automatisch geladen wird.
@Beni: toString() wird eigentlich fast immer automatisch aufgerufen. In deinem Fall kann man es weglassen, glaube ich.

Liebe Grüße
Reality


----------



## bygones (6. Aug 2004)

Reality hat gesagt.:
			
		

> Diese Methode ist in java.lang enthalten, die automatisch geladen wird.


Das ist nicht ganz korrekt - eine Methode kann nicht in einem package enthalten sein - eine Klasse ist in einem package enthalten und eine Methode ist in einer Klasse enthalten.... *klugscheißerisch*


----------



## Reality (6. Aug 2004)

Das ist klar.
String ist in java.lang enhalten und toString widerum in String, trotzdem ist toString() in java.lang enthalten, weil String es ebenfalls ist.

Liebe Grüße
Reality


----------



## Illuvatar (6. Aug 2004)

Nur ist toString eine Methode von Object und liefert einen String, sonst würde das ja alles nicht funktionieren. (String ist auch noch final :wink: )


----------



## Guest (6. Aug 2004)

Die Antworten muss man sich auf der Zunge zergehen lassen.
Ich muss da irgendwie an dei Rede von Rumsfeld denken.
"...and the known unknown we know, know that we know..."

Bin verwirrt :wink:


----------

