# toString Methode ausgeben



## fischldi (5. Mai 2010)

Hallo Community!

Ich habe ein Programm geschrieben indem Vererbung vorkommt.
Es gibt eine Oberklasse Gebaeude und die Unterklasse Fabrikhalle.In jeder Klasse soll eine toString() Methode sein die die Merkmale der Klasse in einen String umwandelt.
Ich habe bei google gesucht und mir was zurechtgebastelt...nur das geht nicht. Habt Ihr einen Tipp?

Lg Caro


```
abstract class Gebaeude{ /* ein Gebaeude z.b ein Schuppen koennte auch auf einem Feld stehen,
                            dort gibt es weder Strassennnamen noch Hausnummer. Daher eignet sich Gebaeude
						    nicht als Oberklasse mit vererbbaren Attributen*/
							public Gebaeude()
							{
							// Konstruktor
			
}  

class Fabrikhalle extends Gebaeude
{
	private String Strasse;
	private int Hausnr;
	private String Firmenname;

	public Fabrikhalle(String Strasse,int Hausnr,String Firmenname) {
				this.Strasse=Strasse;
				this.Hausnr=Hausnr; 
				this.Firmenname=Firmenname;
				// Konstruktor fuer Oberklasse
				
				   }
				   
	 public String toString(){
							return Strasse + " " + Hausnr + " " + Firmenname;
							}			   
}

class Test{
public static void main(String[] args)
{
Fabrikhalle f=new Farbrikhalle("Clara-Schumann-Str",23,"Hach-Lange");

Fabrikhalle.toString();


}
}
```


----------



## eRaaaa (5. Mai 2010)

[java=32]
Fabrikhalle f=new Farbrikhalle("Clara-Schumann-Str",23,"Hach-Lange");

Fabrikhalle.toString();
[/code]

Zeile 32 = Schreibfehler, den findest du auch selbst
Zeile 34 = das ist keine statische Methode, also --> f.toString() und du solltest damit auch irgendwas machen, z.B. ausgeben oder irgendwo zuweisen , sonst machts keinen Sinn!

Und fehlt bei deiner abstrakten Klasse nicht auch eine Klammer? Vernünftig einrücken machts leserlicher :toll:


----------



## nrg (5. Mai 2010)

du schreibst doch schon "einen String zurückgibt". Das tust du doch.... ein Objekt wird zurückgegeben. darauf referenziert dann nix und es wird auch nicht als parameter an irgendeine ausgabemethode o.ä. übergeben, also passiert auch nix und das objekt ist ein fall fürn gc.
wie wärs mit:
System.out.println(f.toString());

Ausserdem: Fabrikhalle.toString() wäre ein statischer aufruf der Methode. Deine ist aber nicht statisch und soll sie auch nicht. also musst du sie auch mit dem Objekt aufrufen. (f.toString())


----------



## fischldi (6. Mai 2010)

Dankeschön für Eure Hilfe!!


----------

