Java Vererbung & Polymorphie Übungsaufgaben?

... komplette Frage anzeigen

3 Antworten

Ich habe mir spontan 5 Aufgaben ausgedacht. Ich definiere nur Randanforderungen, an denen du dich orientieren kannst. Eine weitere Ausgestaltung überlasse ich dir. Bei weiteren Fragen, wende dich gern an mich. Überleg dir, bevor du anfängst, ein Konzept. Fasse dabei alle Anforderungen zusammen, die du erfüllen möchtest.

  • Erstelle ein Programm, indem man verschiedene Objekte (Rechteck, Quadrat, Dreieck, ...) mit einer bestimmten Farbe (rot, blau, grün, ...) erstellen kann. Mögliche neue Farben oder Objekte sollen vom Nutzer variabel neu hinzugefügt werden können. Die Darstellung der Objekte bleibt dir überlassen.
  • Erstelle eine Minispiel "Lemminge". Die Welt besteht aus Blöcken, die unterschiedlich wirken können (bspw. solid, wackelig, bröckelig, ...) und die Lemminge haben z.T. unterschiedliche Fähigkeiten (graben, bohren, stehen bleiben...). Sobald ein Lemming auf das erste Hindernis stößt, schaut er, ob ihn seine Fähigkeit weiterbringt. Ansonsten läuft er wieder zurück. Es soll möglich sein, das Spiel später einfach durch neue Blöcke oder Lemmingstypen erweitern zu können.
  • Erstelle eine Autobahnsimulation. Es gibt verschiedene Fahrzeuge in verschiedenen Farben und Größen, mit unterschiedlichen Huptönen und Geschwindigkeiten. Jedes Auto soll ein eigenes Verhalten aufweisen. Schnelle Autos könnten bei langsamen Autos vor ihnen viel hupen und die nächstmögliche Möglichkeit zum Überholen nutzen. Langsame Autos könnten vorzugsweise die rechte Spur wählen und wenig hupen. Für den Vorgang des Fahrspurwechsels ist eine Geschwindigkeitsänderung natürlich erlaubt. Es sollen variabel neue Fahrzeuge hinzugefügt werden können. Die Darstellung der Objekte bleibt dir überlassen.
  • Erstelle einen Marktplatz mit verschiedenen Marktständen. Auf diesem Marktplatz laufen eine variabel einstellbare Anzahl an Menschen herum, die eine zufällig generierte Liste an Produkten einkaufen wollen. Jeder Mensch variiert in Trag- oder Gedächtniskraft (demnach ist die Liste länger oder kürzer), Geschlecht, Geschwindigkeit und Interessen. Je nachdem wird er also auch nur bestimmte Produkte kaufen (Vegetarier bspw. nur Gemüse, Nerds nur USB-Sticks, etc. - der Fantasie sind da keine Grenzen gesetzt). In einer Sidebar sollen all die Käufer verzeichnet sein, die noch mit ihrem Einkauf beschäftigt sind. Es soll variabel möglich sein, vor Einkaufsstart neue Menschentypen und Produkte einzustellen. Bei den Händlern gibt es klare Gruppierungen: Gemüsehändler, Obsthändler, Fleischverkäufer, Bäcker, .... - demnach sollen sie auch nur das verkaufen können, was logischerweise in ihre Produktpalette hineinpasst. Die Darstellung der Objekte bleibt dir überlassen.
  • Baue ein Chatprogramm
Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von gut4fr5g4
25.10.2016, 16:03

Oha, danke dir deine Mühe, danke danke danke danke! :D

0

Schau dir doch einfach mal Java selbst an. Diese komplette Sprache basiert auf Vererbung. Die meisten Klassen haben eine Basisklasse, welche Grundfunktionalitäten bietet. Diese werden dann durch die Abgeleitete Klasse nur erweitert.

Wenn du dir anschaust, wie die es gemacht haben und dich fragst weshalb, wird dir sicherlich schon einiges klar.

Ansonsten klassisches Beispiel: Verschiedene Objektarten in einem Array oder Liste speichern. Ohne weiteres nicht so einfach möglich, außer sie haben eine gemeinsame Basisklasse...

Antwort bewerten Vielen Dank für Deine Bewertung

Das liegt daran, dass diese beiden Features nicht notwendig sind um funktionierende Programme zu erstellen. Sie sind jedoch sinnvoll, wenn man größere Programme schreiben möchte und der schlüssel dazu liegt darin, dass du dein Programmierstil änderst. Versuche dein nächstes Projekt mal anders zu denken.

Also dass du dir auch Gedanken über mögliche Erweiterungen machst und dementsprechend Basisklassen erstellst.

Ich hatte z.B. ein Tool gemacht, dass auf Flirtseiten leute automatisch anschreibt. Da hatte ich unteranderem eine Basisklasse "Bot" und weitere Unterklassen für die verschiedenen seiten, da jede seite anders aufgebaut war. Man konnte dann polymorphie nutzen indem man eine variable der basisklasse hatte und jenachdem auf welcher seite der bot laufen sollte wurde eine instanz des typen der unterklasse erzeugt und der variable zugewiesen.

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?