# Uni Aufabe: Vertiefung Rekursion, Einführung Objektorientierung



## Lucky89s (18. Jan 2011)

Aufgabe:


Spoiler



a) Snowman.java Schreiben Sie eine Klasse Snowman.java, so dass die folgende Klasse
SnowmenBuilding.java ausgeführt werden kann.

Teil der Aufgabe(Quelltext):



Spoiler





```
class SnowmenBuilding {
public static void main(String[] args) {
Snowman flaky = new Snowman();
Snowman iceBoy = new Snowman();
flaky.putNose();
flaky.putMouth("5 Steine");
flaky.putHat("Buntes Kopftuch");
flaky.putButtons(3);
iceBoy.putNose();
iceBoy.putArms();
iceBoy.putHat("Kochtopf");
Out.print("Das ist Flaky: ");
flaky.showSnowman();
Out.print("Das ist IceBoy: ");
iceBoy.showSnowman();
}
}
```




Die Klasse SnowmenBuilding darf nicht verändert werden. Für das obige Programm sollte sich
die folgende Ausgabe ergeben:

Das ist Flaky: Schneemann
mit Nase
ohne Arme
Mund ist 5 Steine
Hut ist Buntes Kopftuch
mit 3 Knöpfen
Das ist IceBoy: Schneemann
mit Nase
mit Armen
ohne Mund
Hut ist Kochtopf
ohne Knöpfe



Meine frage ist nun:

Was ist das z.B. flaky.putNose für ein Datentyp und wie rufe ich diesen auf?
Würde sich 
Snowman flaky = new Snowman();
Snowman iceBoy = new Snowman();
nicht überschreiben?


----------



## ARadauer (18. Jan 2011)

> Was ist das z.B. flaky.putNose für ein Datentyp und wie rufe ich diesen auf?


kein Datentyp.. eine Methode


> Würde sich
> Snowman flaky = new Snowman();
> Snowman iceBoy = new Snowman();
> nicht überschreiben?


nein flaky ist eine andere variable als  iceBoy 
int i = 8;
int j = 9;
hier wird ja auch nix überschrieben...


----------



## Andi_CH (18. Jan 2011)

Lucky89s hat gesagt.:


> Was ist das z.B. flaky.putNose für ein Datentyp und wie rufe ich diesen auf?




```
flaky.putNose();
```

Das ist ein Aufruf


----------



## Gonzo17 (18. Jan 2011)

Lucky89s hat gesagt.:


> Meine frage ist nun:
> 
> Was ist das z.B. flaky.putNose für ein Datentyp und wie rufe ich diesen auf?
> Würde sich
> ...



flaky und iceBoy sind Variablen vom Typ Snowman. Die Klasse Snowman musst du noch schreiben, steht ja auch ganz am Anfang, dass das die Aufgabe ist. Du legst einfach eine neue Klasse mit dem Namen Snowman an und schaust dann, was implementiert werden muss. Offensichtlich brauchst du einen Konstruktor ohne Parameter. Und offensichtlich brauchst du auch verschiedene Methoden, wie eben putNose(). Letztendlich siehst du ja an der Ausgabe, dass alle Eigenschaften des Schneemanns ausgegeben werden, das Ergebnis ist eben abhängig von dem, was gesetzt wurde. Das heißt im Endeffekt, dass du Attribute vom entsprechenden Datentyp in der Klasse Snowman angelegen musst, diese müssen passend initialisiert werden.


----------



## Lucky89s (19. Jan 2011)

Dank eurer hilfe hab ichs geschaft vielen dank. :toll:


----------

