In dieser Aufgabe soll ich ein Telefonbuch implementieren
Die Speicherung der Einträge in das Telefonbuch ist als einfach verkettete Liste zu implementieren.
Außer der Klasse String aus dem Java-API, soll nur von mir implementierte Klassen
verwenden.
ich habe die erste interface implemetiert
Java:
publicclassPhoneBookEntryimplementsPhoneBookEntryInterface{String name ;String number ;publicStringgetName(){return name ;}@OverridepublicStringgetNumber(){return number;}}
ich habe probleme mit der implemtierung von der zweite interface , das ist das erste mal dass ich mit listen zu tun habe
Java:
publicclassPhoneBookimplementsPhoneBookInterface{privatePhoneBookEntry last =null;publicvoidadd(String name,String phoneNumber){PhoneBook phoneBook =newPhoneBook();
phoneBook.add("Maier","xxx");
phoneBook.add("Huber","xxx");
phoneBook.add("Müller","xxx");// TODO Auto-generated method stub}@OverridepublicvoidaddAll(PhoneBookInterface other){// TODO Auto-generated method stub}publicbooleandelete(String name){PhoneBookEntry help = last ;returnfalse;}
ich habe keine ahnung was soll ich in der methode
Java:
publicvoidaddAll(PhoneBookInterface other){
und
Java:
publicbooleandelete(String name)
schreiben , kann vielleicht jemand ein hinweis geben ???
???:L :bahnhof:
addAll : Nunja, dort ist es ja wohl so gedacht, dass du eben auch ein anderes PhoneBook übergeben könntest. Du musst nun eben ALLE Einträge(PhoneBookEntry) die dieses übergebene PhoneBook enthält, in dein aktuelles (also this: auf dem die Methode aufgerufen wurde) einfügen.
delete: Eig. auch hier schon durch den Namen klar - du sollst den PhoneBookEntry mit dem Namen "name" löschen...
Nun ja, viel verkettet ist in deiner Liste ja noch nicht, das ist das allererste, um das du dich kümmern musst: Wie sind die PhoneBookEntries miteinander verbunden, wie added man einen neuen, wie löscht man einen, wie gibt man Einträge zurück...
addAll lässt sich einfach als wiederholtes add implementieren: Lies alle Werte aus dem übergebenen PhoneBook aus und adde sie zum aktuellen hinzu.
Aber dazu müsstest du erst einmal ein brauchbares add implementieren. Ein neues PhoneBook brauchst du da drin jedenfalls nicht.
Also für eine Klasse reicht es nicht, nur das Interface zu implementieren. Ich fuddele mal ein wenig am Entry rum, damit er "verkettbar" wird. PhoneBook selbst muss sich dann um die "Verwaltung" der Einträge kümmern, das lasse ich mal als Übungsaufgabe:
(ungetestet)
Java:
publicclassPhoneBookEntryimplementsPhoneBookEntryInterface{privatefinalString name ;privatefinalString number ;privatePhoneBookEntry next;publicPhoneBookEntry(String name,String number){this.name = name;this.number = number;}//hängt einen Eintrag ans Ende der Listepublicappend(PhoneBookEntry entry){if(next ==null){
next = entry;}else{
next.append(entry);}}//Länge der Listepublicintlength(){if(next ==0){return1;}else{return1+ next.length();}}//gibt den n-ten Eintrag zurückpublicPhoneBookEntryget(int index){if(index ==0){returnthis;}elseif(next !=null){
next.get(index -1);}else{thrownewIllegalArgumentException("No such element");}}//Finde einen EintragpublicPhoneBookEntryfind(String name){if(name.equals(this.name)){returnthis;}elseif(next !=null){return next.find(name);}else{returnnull;}}@OverridepublicStringgetName(){return name ;}@OverridepublicStringgetNumber(){return number;}}
habt ihr nichts darüber gelernt? such mal in google nach verkette listen, das ist ein standard beispiel, das haben 95% aller Informatik Studenten gemacht...