Die folgenden Aufgaben bauen auf dem Telefonbuch-Beispiel in diesem Kapitel auf.
Verändern Sie die equals()
Methode, so dass der Anwender die gesuchten Namen auch in Klein- oder in Großbuchstaben eingeben kann.
Testen Sie das Programm in einer Klasse TelefonbuchTester
.
Zurück zur Übersicht.
Telefonbuch
-Klasse
Leiten Sie eine Klasse Telefonbuch
von der Klasse Vector
ab.
Erstellen Sie die folgenden Konstruktoren:
public Telefonbuch()
Vector
-Objekt mit
einer Anfangskapazität von 10 und einer Inkrementgröße von 5
Elementen. Danach fügt er dem Vector
-Objekt die fünf
Elemente aus Aufgabe 1 hinzu (Natürlich würden in einer richtigen Applikation
der Vektor auf andere Weise gefüllt werden).
public Telefonbuch( int kap )
Vector
-Objekt mit einer Anfangskapazität von
kap
Elementen.
public Telefonbuch( int kap, int inkrement )
Vector
-Objekt mit einer Anfangskapazität von
kap
und einer Inkrementgröße von inkrement
Elementen.
Erstellen Sie in der Klasse Telefonbuch
eine Methode menu()
, die die zur Verfügung stehenden Auswahlmöglichkeiten ausgibt:
---Telefonbuch-Applikation--- Treffen Sie Ihre Auswahl <1> Alle Eintraege anzeigen <2> Eintrag suchen <3> Eintrag bearbeiten <4> Eintrag hinzufügen <5> Eintrag loeschen <6> Anzahl Eintraege <-1> Ende
Implementieren Sie in der Klasse Telefonbuch
für "Alle Eintraege anzeigen" die Methode
. Verwenden Sie für diese Methode ein Enumeration
-Objekt.
Testen Sie das Programm in einer Klasse TelefonbuchTester2
. Die Ausgabe sieht dann ungefähr wie diese aus:
---Telefonbuch-Applikation--- Treffen Sie Ihre Auswahl <1> Alle Eintraege anzeigen <2> Eintrag suchen <3> Eintrag bearbeiten <4> Eintrag hinzufügen <5> Eintrag loeschen <6> Anzahl Eintraege <-1> Ende 1 Name: Amy Nummer: 123-4567 Name: Bob Nummer: 123-6780 Name: Hal Nummer: 789-1234 Name: Deb Nummer: 789-4457 Name: Zoe Nummer: 446-0210 ---Telefonbuch-Applikation--- Treffen Sie Ihre Auswahl <1> Alle Eintraege anzeigen <2> Eintrag suchen <3> Eintrag bearbeiten <4> Eintrag hinzufügen <5> Eintrag loeschen <6> Anzahl Eintraege <-1> Ende
Implementieren Sie in der Klasse Telefonbuch
für "Eintrag suchen" die Methode
. Verwenden Sie dazu die indexOf()
Methode der Klasse Vector
, um die eingebaute Suchmethode von Vector
nutzen zu können.
Testen Sie das Programm. Die Ausgabe sieht dann ungefähr wie diese aus:
---Telefonbuch-Applikation--- Treffen Sie Ihre Auswahl <1> Alle Eintraege anzeigen <2> Eintrag suchen <3> Eintrag bearbeiten <4> Eintrag hinzufuegen <5> Eintrag loeschen <6> Anzahl Eintraege <-1> Ende 2 +++Namen suchen+++ Zurueck zum Menue mit <M> Namen eingeben --> bob Name: Bob Nummer: 123-6780 +++Namen suchen+++ Zurueck zum Menue mit <M> Namen eingeben -->
Implementieren Sie in der Klasse Telefonbuch
für "Eintrag bearbeiten" die Methode
. Erzeugen Sie dazu ein neues Eintrag
-Objekt mit dem eingegebenen Namen und übergeben Sie es der indexOf()
Methode der Klasse Vector
, um den Index des zu bearbeitenden Eintrags zu ermitteln. Verwenden Sie dann die setElementAt()
Methode, um dem Telefonbuch
-Objekt ein neues Eintrag
-Objekt hinzufügen.
Testen Sie das Programm. Die Ausgabe sieht dann ungefähr wie diese aus:
---Telefonbuch-Applikation--- Treffen Sie Ihre Auswahl <1> Alle Eintraege anzeigen <2> Eintrag suchen <3> Eintrag bearbeiten <4> Eintrag hinzufuegen <5> Eintrag loeschen <6> Anzahl Eintraege <-1> Ende 3 +++Eintrag bearbeiten+++ Zurueck zum Menue mit <M> Namen eingeben --> bob Name: Bob Nummer: 123-6780 Neuer Name fuer --> Bob Sam Neue Telefonnummer --> 222-4444 Name: Amy Nummer: 123-4567 Name: Sam Nummer: 222-4444 Name: Hal Nummer: 789-1234 Name: Deb Nummer: 789-4457 Name: Zoe Nummer: 446-0210 +++Eintrag bearbeiten+++ Zurueck zum Menue mit <M> Namen eingeben -->
Implementieren Sie in der Klasse Telefonbuch
die verbleibenden Methoden. Verwenden Sie dazu die Methoden addElement()
, removeElementAt()
und size()
der Klasse Vector
.
Zurück zur Übersicht.
Fügen Sie im parameterlosen Konstruktor der Telefonbuch
-Klasse am Ende den folgenden Eintrag hinzu (dient nur für die anschließende Sortierung):
addElement( new Eintrag( "Abe", "123-4567") ) ;
Die Klasse Collections
stellt eine statische Methode sort()
zur Verfügung mit der ein Vector
-Objekt sortiert werden kann.
public static void sort(List list, Comparator c)
Da Vector
eine Subklasse von List
ist, kann die Methode für Vector
-Objekte eingesetzt werden. Als zweiten Parameter erwartet die Methode ein Objekt einer Klasse, die die Schnittstelle Comparator
implementiert hat. Die Methode, die implementiert werden muss ist:
int compare(Object o1, Object o2)
Erstellen Sie eine Klasse MeinComparator
und implementieren Sie die Methode compare()
. Vergleichen Sie in der Methode den Namen zweier Eintrag
-Objekte. Verwenden Sie dafür die Instanzmethode compareTo()
der Klasse String
. Der Aufruf der Methode in der Testklasse sieht dann folgendermaßen aus:
Collections.sort( meinVector, new MeinComparator() ) ;
Es ist sinnvoller die Sortierung über eine Methode zu realisieren. Implementieren Sie daher die Methode alleAnzeigenAsc()
, die zuerst die statische Methode sort()
der Klasse Collections
und danach die Methode alleAnzeigen()
aufruft. Ändern Sie den ersten Menüpunkt:
---Telefonbuch-Applikation--- Treffen Sie Ihre Auswahl <1> Alle Eintraege anzeigen (aufsteigend)
Testen Sie das Programm.
Zurück zur Übersicht.
Erweitern Sie das Menü der Telefonbuch
-Klasse um den Menüpunkt "Absteigend sortieren". Erstellen Sie eine weitere Klasse MeinComparatorDesc
und implementieren Sie die compareTo()
-Methode, so dass sie die Einträge absteigend sortiert ausgibt. Der Aufruf der Methode sort()
der Klasse Collections
erfolgt dann über eine Methode alleAnzeigenDesc()
Testen Sie das Programm. Die Ausgabe sieht dann ungefähr wie folgt aus:
---Telefonbuch2-Applikation--- Treffen Sie Ihre Auswahl <1> Alle Eintraege anzeigen (aufsteigend) <2> Eintrag suchen <3> Eintrag bearbeiten <4> Eintrag hinzufuegen <5> Eintrag loeschen <6> Anzahl Eintraege <7> Alle Eintraege anzeigen (absteigend) <-1> Ende 1 +++Aufsteigend sortiert+++ Name: Abe Nummer: 123-4567 Name: Amy Nummer: 123-4567 Name: Bob Nummer: 123-6780 Name: Deb Nummer: 789-4457 Name: Hal Nummer: 789-1234 Name: Zoe Nummer: 446-0210 ---Telefonbuch2-Applikation--- Treffen Sie Ihre Auswahl <1> Alle Eintraege anzeigen (aufsteigend) <2> Eintrag suchen <3> Eintrag bearbeiten <4> Eintrag hinzufuegen <5> Eintrag loeschen <6> Anzahl Eintraege <7> Alle Eintraege anzeigen (absteigend) <-1> Ende 7 +++Absteigend sortiert+++ Name: Zoe Nummer: 446-0210 Name: Hal Nummer: 789-1234 Name: Deb Nummer: 789-4457 Name: Bob Nummer: 123-6780 Name: Amy Nummer: 123-4567 Name: Abe Nummer: 123-4567 ---Telefonbuch2-Applikation--- Treffen Sie Ihre Auswahl <1> Alle Eintraege anzeigen <2> Eintrag suchen <3> Eintrag bearbeiten <4> Eintrag hinzufuegen <5> Eintrag loeschen <6> Anzahl Eintraege <7> Absteigend sortieren <-1> Ende
Zurück zum Inhaltsverzeichnis.
Ende der Aufgaben