Übungen
Hund-Klasse
Einige Übungen gehen von der Verwendung der Klasse Hund
aus.
Ein Hund bekommt bei der Erzeugung einen zufälligen Namen zugewiesen.
Er kann bellen und gibt dabei seinen Namen aus.
Die Klasse Hund
kannst Du Dir fertig implementiert herunterladen.
Aufgabe 1 - Methoden kennen lernen
Experimentiere im Codepad oder in einem Testprogramm mit einer
LinkedList
von Hund
.
Du solltest dabei zumindest eine Liste erzeugen, mit einigen Hunden füllen,
einzelne Hunde bellen lassen und Hunde löschen.
Aufgabe 2 - Listen durchlaufen
Schreibe eine Klasse Hundestaffel
gemäß den folgenden Anforderungen:
- Eine Hundestaffel hat als Attribut eine Liste von Hunden.
- Beim Aufruf des Konstruktors der Klasse soll die Liste mit 20 Hunden gefüllt werden.
- Beim Aufruf der Methode
alleBellen()
sollen alle Hunde einmal bellen. - Beim Aufruf der Methode
teilweiseBellen()
soll jeder zweite Hund bellen. - Beim Aufruf der Methode
teilweiseEntfernen()
soll jeder zweite Hund von der Liste entfernt werden.
Aufgabe 3 - Dokumentation lesen
Suche in einer Suchmaschine nach den Begriffen "LinkedList Java".
Einer der ersten Treffer sollte zur
offizielle Dokumentation
der Klasse LinkedList
führen.
Analog kannst Du die Dokumentation anderer Java-Klassen finden.
Auch wenn Du nicht alle Details verstehen wirst, kannst Du die wesentlichen Informationen erfassen. Finde und teste Methoden zum:
- Entfernen des ersten und letzten Elementes.
- Abfragen des ersten Elementes ohne dieses zu löschen.
- Ersetzen eines Elementes über den Index.
- Überprüfen, ob ein bestimmtes Objekt vorhanden ist.
Lass Dich nicht von der Tatsache verwirren, dass manche Methoden das gleiche bewirken. Das liegt daran, dass eine Liste z.B. auch als Warteschlange oder Stapel benutzt werden kann und dann teilweise andere Methodennamen üblich sind.
Aufgabe 4 - Der Entscheider
- Du stehst oft vor einem Regal und weißt nicht, ob Du die weiße oder die Vollmilchschokolade kaufen sollst?
- Du bist auf einer Party und fragst Dich "Sprech' ich sie/ihn an oder nicht?"
- Du sitzt öfter zu Hause und denkst "Ich würde ja so gerne Info-Hausaufgaben machen, aber ich könnte ja auch ..."
Du brauchst den Entscheider! Der Entscheider hilft Dir immer die richtige Entscheidung zu treffen. Du gibst einfach alle Punkte, die dafür oder dagegen sprechen ein. Der Entscheider wertet diese aus (zählt diese) und trifft die Entscheidung.
- Entwirf das UML-Klassendiagramm für den Entscheider.
- Implementiere die Klasse.
- Triff Entscheidungen :-)
Optional: Erweitere das Programm so, dass ein Argument nicht nur eine einfache Zeichenkette ist, sondern auch einen Wert für das Gewicht des Arguments besitzt.
Aufgabe 5 - MP3-Verwaltung
Es soll ein Tool programmiert werden, das MP3-Dateien verwalten soll. Dazu ist die Klasse Song Song gegeben. Die Anforderungen an die Software lauten folgendermaßen:
- Es soll eine Klasse zur Verwaltung einer MP3-Sammlung geben.
- Die Klasse soll ein Attribut besitzen, in dem eine LinkedList von Song gespeichert werden kann. Das Attribut soll im Konstruktor mit einem entsprechenden Objekt belegt werden.
- Es soll ein neuer Song zugefügt werden können.
- Ein Song soll über dessen Index gelöscht werden können.
- Die Zahl der Songs soll erfragt werden können.
- Es soll eine vollständige Übersicht über alle Songs ausgegeben werden.
- Die Zahl der Songs eines Interpreten soll erfragt werden können. Der Name des Interpreten wird dabei als Parameter übergeben.
- Es soll eine LinkedList von Song erfragt werden können, die alle Songs eines Interpreten beinhalten. Der Name des Interpreten soll als Parameter übergeben werden können.
- Analog sollen die Songs erfragt werden können, die einen bestimmte Zeichenkette enthalten.
Programmierhinweise: Zeichenketten kann man in Java u.a. mit den Methoden equals
und contains
vergleichen, z.B.:
String s = "Hund";
s.contains("u") -> ergibt true
s.equals("und") -> ergibt false