Übung Grundlagen der Programmierung WS 2003/04 Übung 08 (Objektorientierung und Dynamische Datenstrukturen) Auszufüllen für den Autor der Übung: Name:.............................................................. Matrikelnummer:.............................................. Abgabetermin: 09.12.2003 Punkte:.......... Übung 08 ___________________________________________________________________ Auszufüllen für die Review Teilnehmer: Name:.............................................................. Matrikelnummer:................................... Name:.............................................................. Matrikelnummer:................................... Name:.............................................................. Matrikelnummer:................................... Name:.............................................................. Matrikelnummer:................................... Ergebnis des Reviews: Punkte:...... Übung Grundlagen der Programmierung WS 2003/04 Aufgabe 1: Personenliste (18 Punkte) Erstellen Sie eine Klasse PersonNode welche einen Knoten mit Personeninformationen darstellt. Dabei sollen Daten wie Vor/Nachname (String), Geburtsdatum (int,int,int) und Adresse (String) gespeichert werden können. Die Klasse PersonNode soll auch eine Methode String toString() enthalten, welche die Personeninformationen als Zeichenkette zurückliefert. (6 Punkte) Benutzen Sie dann diese Klasse PersonNode um eine Klasse PersonList zu implementieren welche eine Liste von Personen Knoten verwalten kann. Dazu sind in der Klasse PersonList folgende Methoden zu implementieren: (12 Punkte) • • add(PersonNode pn): Fügt einen neuen Personen-Knoten am Beginn der Liste ein. Remove(String fn, String ln): Löscht den ersten Knoten mit gegeben Vornamen und Nachnamen aus der Liste. • • PersonNode search(String fn, String ln): Sucht in der Liste nach dem gegebenen Vornamen und Nachnamen und liefert den Knoten zurück, oder null wenn die Person nicht gefunden wurden. String toString(): Liefert alle Informationen der Personen in der Liste als String zurück. Beispiel: PersonNode wb = new PersonNode("Wolfgang", "Beer", 3, 8, 1977, "Address XYZ"); PersonNode mm = new PersonNode("Max", "Muster", 2, 9, 1980, "Hauptstr 2, Linz"); Out.println(wb); Out.println("Ausgabe der Personenliste:"); PersonList pl = new PersonList(); pl.add(wb); pl.add(mm); Out.println(pl); Out.println("Suche nach Person Wolfgang Beer:"); Out.println(pl.search("Wolfgang", "Beer")); Out.println("Loesche Person Wolfgang Beer aus der Liste:"); pl.remove("Wolfgang", "Beer"); Out.println(pl); Übung Grundlagen der Programmierung WS 2003/04 Ausgabe: -Person: Wolfgang Beer born:3.8.1977 address: Address XYZ Ausgabe der Personenliste: -PersonList: -Person: Max Muster born:2.9.1980 address: Hauptstr 2, Linz -Person: Wolfgang Beer born:3.8.1977 address: Address XYZ Suche nach Person Wolfgang Beer: -Person: Wolfgang Beer born:3.8.1977 address: Address XYZ Loesche Person Wolfgang Beer aus der Liste: -PersonList: -Person: Max Muster born:2.9.1980 address: Hauptstr 2, Linz Statisch oder dynamisch? (3 + 3 Punkte) • Geben Sie ausführlich an worin der Unterschied zwischen statischen (Klassenfeldern) und dynamischen Feldern (Objektfeldern) besteht. • • • • Wann werden die Felder angelegt, wann freigegeben? Wie greift man darauf zu? Wann braucht man statische bzw. wann dynamische Felder? Geben Sie ausführlich an worin der Unterschied zwischen statischen (Klassenmethoden) und dynamischen Methoden (Objektmethoden) besteht? • • • Wann stehen die Methoden zur Verfügung? Wie greift man darauf zu? Wann braucht man statische bzw. wann dynamische Methoden?