Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Die allgemeine Liste.

Ähnliche Präsentationen


Präsentation zum Thema: "Die allgemeine Liste."—  Präsentation transkript:

1 Die allgemeine Liste

2 Der Knoteninhalt als Schnittstelle
interface Eintrag int xVerschiebung = 100 int yVerschiebung = 0 void verschiebeNachLinks () void verschiebeNachRechts () void werdeUnsichtbar () boolean istKleinerAls (Eintrag) void druckeAufKonsole () Wir wollen die Liste so programmieren, dass sie für alle Knoteninhalte funktioniert: einerseits für Graphiken in einer Personen- oder Autoschlange und andererseits für Textinhalte wie Fremdsprachenvokabeln oder CD-Beschreibungen. Die Attribute und Methoden zum Verschieben und Unsichtbarmachen werden nur für Graphiken benötigt. Die Methode istKleinerAls () dient zum Sortieren; druckeAufKonsole () ist eine schlichte Textausgabe.

3 Graphikmethoden in der Klasse Person
public void verschiebeNachRechts () { verschiebe (xVerschiebung, yVerschiebung); } public void verschiebeNachLinks () verschiebe (-xVerschiebung, -yVerschiebung); public void werdeUnsichtbar () haupthaar.werdeUnsichtbar (); […] schuh2.werdeUnsichtbar (); namensschild.werdeUnsichtbar (); Mit xVerschiebung = 100 und yVerschiebung = 0 wird die Personenschlange von links nach rechts gezeichnet mit bis zu 100 Bildpunkten Breite je Person. Durch Ändern dieser Werte kann die Schlange optisch in andere Richtungen verlaufen.

4 Vergleichsmethode in der Klasse Person
public boolean istKleinerAls (Eintrag andererEintrag) { if (andererEintrag instanceof Person) if (name.compareTo (((Person) andererEintrag).gibName ()) < 0) return true; } else return false; Wenn der andere Eintrag tatsächlich eine Person ist und wenn er als Person einen Namen hat, der alphabetisch nach dem Namen des aktuellen Person kommt, dann nennen wir die aktuelle Person kleiner als den anderen Eintrag. (Man könnte auch einen Fehler melden, wenn der andere Eintrag keine Person ist.)

5 Druckmethode in der Klasse Person
public void druckeAufKonsole () { System.out.println ("Name : " + name); System.out.print ("Geschlecht: "); if (istWeiblich ()) System.out.print ("weiblich"); } else System.out.print ("männlich"); System.out.println ("Hautfarbe : " + hand1.gibFarbe ()); System.out.println ("Haarfarbe : " + haupthaar.gibFarbe ()); System.out.println (); Die Druckmethode liefert einen nichtgraphischen Steckbrief der betreffenden Person.

6 Graphikmethoden in der Klasse Vokabel
public void verschiebeNachRechts () { } public void verschiebeNachLinks () public void macheUnsichtbar () Für Vokabeln wünschen wir keine graphische Darstellung. Darum tun die Graphikmethoden hier gar nichts.

7 Druckmethode in der Klasse Vokabel
public void druckeAufKonsole () { System.out.println ("Fremdsprache: " + fremd); System.out.println ("Deutsch: " + deutsch); System.out.println (); } Um eine Vokabelkarteikarte anzuzeigen, genügt die Angabe der fremdsprachlichen und der deutschen Bedeutung.

8 Implementierung in der Klasse Tretauto
Da Tretauto ebenfalls eine graphische Klasse ist, können wir ihre Graphikmethoden genauso implementieren wie diejenigen der Klasse Person. Tretautos besitzen jedoch keinen Namen, nach dem sie sich sortieren ließen. Wir können ihre Vergleichsmethode istKleinerAls () jedoch zum Beispiel so programmieren, dass immer dasjenige Tretauto das kleinste ist, dessen Karosseriefarbe am weitesten vorne im Alphabet steht. Damit werden die Tretautos beim sortierten Einfügen in die Liste nach Farbe geordnet.

9 Gemischte Listen In die allgemeine Liste können wir Objekte aus allen Klassen einfügen, welche die Schnittstelle Eintrag implementieren. Damit lassen sich Personen, Vokabeln und Tretautos bunt mischen. In der graphischen Darstellung der Liste ist überall dort eine Lücke, wo eine Vokabel steht. In der Konsolenausgabe der Liste kommen die Vokabeln jedoch vor.

10 Klassendiagramm Eintrag Person Vokabel Tretauto Alle drei Klassen Person, Vokabel und Tretauto implementieren die Schnittstelle Eintrag. Beliebig viele weitere Implementierungen sind denkbar. public abstract class Person implements Eintrag […] public class Vokabel implements Eintrag Sobald wir eine Klasse mit implements der Schnittstelle untergeordnet haben, zwingt uns der Compiler, alle Methoden der Schnittstelle in der Klasse selbst oder spätestens in ihren Unterklassen zu programmieren (also zu „implementieren“).


Herunterladen ppt "Die allgemeine Liste."

Ähnliche Präsentationen


Google-Anzeigen