# Brauche dringend Hilfe bei der Hausaufgabe :/



## annawinter (7. Apr 2015)

Hey Leute, ich bin am verzweifeln.. :noe:
Ich sitz den ganzen Tag schon an einer Hausaufgabe und komm einfach nicht voran, deshalb versuch ich´s jetzt mal hier :shock: 
Das Problem ist dass ich die Aufgabe bis morgen Nachmittag haben MUSS.. je mehr ich darüber nachdenke und nicht weiterkomme desto mehr gerate ich in Panik :shock: 
Bitte bitte bitte kann mir jemand helfen, ich wäre euch unfassbar dankbar 
Hier ist die Aufgabenstellung als Text: 

Fur einen Zoo soll ein Programm zur Verwaltung der Tiere erstellt werden. Dazu mussen die Tiere in eine
geeignete Klassenhierarchie eingeordnet werden. Implementieren Sie die Klassen mit den Attributen und
den Methoden.
-Folgende Tiere sind vorzusehen: Schmetterlinge, Mausebussarde, Lowen, Hasen, Haie, Karpfen, Wölfe
-Folgende Attribute sollen nur, wo sinnvoll, vorgesehen werden: posx x-Position des Tiere im Graphikfenster, posy y-Position des Tiere im Graphikfenster, Flugelspannweite (im m), Gewicht (in kg), Lufttemperatur (GradCelsius), Käfiggroesse (in m**3), Aquariumgroesse (in m**3)
-Folgende Methoden sollen fur die Tiere (alle) implementiert sein - setzen Sie Polymorphie geeignet ein:
 paint(), fortbewegung(), verstandigung (), lieblingsbeutetier()

Implementieren Sie fur alle Tiere einen Konstruktor in dem Sie fur jedes Attribut per Parameter einen Wert
zum Instanziieren ubergeben.
Die Paint - Methode zeichnet das Tier an der Position (posx,posy) in das Graphikfenster (der jsTools.Graph).
Das Tier konnen Sie durch Symbole darstellen, oder ein jpeg Bild (jsTools.Graph.addPicture(...) verwenden.
Der Aufruf der anderen Methoden soll jeweils einen Satz ausgeben, der die Tierart (Klasse) und die Tatigkeit,
die der Methode entspricht, enthalt. Ubt das Tier die entsprechende Tatigkeit nicht aus, soll ein
Standardtext ausgegeben werden, der darauf hinweist, dass diese Tatigkeit nicht ausgeübt wird. (z.B.
Schmetterling, Methode lieblingsbeutetier() : Ich bin ein Schmetterling und habe kein Beutetier).
Verwenden Sie Vererbung und Polymorphie. Fuhren Sie geeignete Hilfsklassen ein, damit jede Variable nur
einmal im Programm deniert wird und keine identischen Methoden programmiert werden.
Damit Sie Polymorphie einsetzen konnen, muss jede Methode in der obersten Klassen Ihrer Tier-Hierarchie
implementiert sein.

Danke im Voraus, Anna


----------



## Saheeda (8. Apr 2015)

Fang doch erstmal mit der Hierarchie und der Zuordnung der Attribute an. Hat ein Löwe eine Flügelspannweite? Und so gehst du nach und nach alle durch.


----------



## annawinter (8. Apr 2015)

Danke für die sehr schnelle Antwort  Die Logik ist mir irgendwie schon bekannt aber ich weiß halt leider nicht wirklich wie ich das anwenden muss.. :d


----------



## Saheeda (8. Apr 2015)

Du erstellst zuerst eine abstrakte Oberklasse, z.B. Tier. Dort legst du die paint-Methode an. Alle anderen sollten Methoden sollten abstrakt sein. 

Abstracte Klassen lassen sich nicht instanzieren, d.h. du kannst kein Objekt davon erstellen. Ein Objekt "Tier" wäre sinnlos, du möchtest es genauer haben, deswegen abstrakt.
Indem die Methoden abstrakt gemacht werden, "zwingst" du die Kindklassen, irgendein Verhalten zu implementieren, um sie nutzen zu können. Da jedes Tier für fortbewegung(), verständigung () und lieblingsbeutetier() ein anderes Verhalten zeigt, lohnt es sich auch nicht, in der Tierklasse irgendwas zu definieren und es später zu überschreiben.
Nur paint() kann gleich sein. Denn gezeichnet werden können alle.

Als nächstes würde ich mir überlegen, wie ich die Tiere an sich nochmal gruppieren kann, was ich weiter oben schon gesagt habe, und wie ich die Eigenschaften am sinnvollsten verteile.


Schreib das erstmal.

Ich helfe dir gern, wenn du nicht weiter weißt, aber von dir muss auch bisschen was kommen.


----------



## annawinter (8. Apr 2015)

Hört sich gut an, danke für die Mühe dafür


----------

