Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

03. Mai EPROG Tutorium #5 Philipp Effenberger Verschiedene Collections List Set Stack Vererbung Casten Abstract Class Interface.

Ähnliche Präsentationen


Präsentation zum Thema: "03. Mai EPROG Tutorium #5 Philipp Effenberger Verschiedene Collections List Set Stack Vererbung Casten Abstract Class Interface."—  Präsentation transkript:

1 03. Mai 2005philipp_effenberger@web.de1 EPROG Tutorium #5 Philipp Effenberger Verschiedene Collections List Set Stack Vererbung Casten Abstract Class Interface

2 03. Mai 2005philipp_effenberger@web.de2 Collections Nur Objekte koennen an Collection angefügt werden int, char, double, boolean etc... sind keine Objekte Wrapperobjekte: Integer, Character, Double etc... ArrayList tmp = new ArrayList (); tmp.add( new Integer(4) ); tmp.add( 4 ); // Funktioniert auch implizit int i = tmp.get( 0 ); // und genauso retour int j = tmp.get( 1 ).intValue();

3 03. Mai 2005philipp_effenberger@web.de3 Collections – List Wie flexible Arrays Auch Interface; Implementierungen sind ArrayLists: benutzt Arrays LinkedList: Verkettete Listen (siehe AlgoDat) Vector: eher veraltet. Methoden: add, remove, contains,... contains funktioniert nur dann, wenn Methode equals richtig implementiert //class Matrix public boolean equals(Object o) { Matrix t = (Matrix) o; // casten // weitere Anweisungen... }

4 03. Mai 2005philipp_effenberger@web.de4 Collections – Set Menge: Unterschied zu Liste: Jedes Element unique Beste Implementierung : HashSet Methode int hashCode() und equals muss implementiert sein idR reicht int hashCode() { return 0; } Beispiel: Programm zum Zaehlen aller unterschiedlicher Woerter in einem Text

5 03. Mai 2005philipp_effenberger@web.de5 Collections – Stack In Java eigentlich eine Liste (implementiert List-Interface) Stapel: 2 Operationen push = oben etwas ablegen pop = oben etwas wegnehmen Beliebte Datenstruktur bei Rechnern keine Klammern nötig 3 1 2 + - 4 * entspricht 4 * ((2 + 1) - 3) Einfach am Computer zu realisieren

6 03. Mai 2005philipp_effenberger@web.de6 Vererbung legt Beziehungen zwischen Klassen fest Subklasse extends Superklasse Subklasse erbt alle Methoden und Eigenschaften Subklasse kann Methoden der Superklasse Überschreiben mit final kann man Ableitung verhindert werden public final class XYZ {…} keine Mehrfachvererbung in Java Vererbung sollte eine logische Erweiterung der Superklasse darstellen Rectangle extens Figure // Rechteck is_a Figur Square extends Rectangle // Quadrat is_a Rechteck Neue Schlüsselworte: super (=this nur auf Oberklasse bezogen), protected (wie private aber auch in Unterklassen sichtbar)

7 03. Mai 2005philipp_effenberger@web.de7 Vererbung – Polymorphie ( Auszug ) Überschreiben (Spezialisierung) Methode aus Superklasse geerbt In Subklasse selbe Methode implementiert super.Methode(…) // Methodenaufruf Superclass,statt eigener Überladen (Variation) In gleicher Klasse Methode mehrfach implementiert: private int wahrFalsch() {}; private boolean wahrFalsch( int a ) {}; Unterscheiden sich durch Rückgabewert, Parameterwert(e). Wird vom Compiler erkannt, welche Methode gerade nötig ist.

8 03. Mai 2005philipp_effenberger@web.de8 Casten Untertyp ist auch vollwertiger Obertyp Relation in Vererbungshierachie einsehbar Bsp. vom letzten Mal: Fahrrad is_a Transportmittel Fahrrad x = new Fahrrad(); Nicht umgekehrt // ClassCastException Transportmittel x = new Fahrrad(); Nicht anders // Exception, spätestens im Prog Fahrrad x = new Dreieck(); Fahrrad x = new Fahrrad(); Transportmittel y = (Transportmittel) x;

9 03. Mai 2005philipp_effenberger@web.de9 Abstrakte Klassen nur teilweise Implementation der Klasse abstract class XYZ {…} Methoden ohne Körper! // ==nur Schnittstellendeklaration Konstruktor nicht aufrufbar

10 03. Mai 2005philipp_effenberger@web.de10 Interfaces Interface = Spezifikation einer Klasse = Schnittstellen der Klasse = öffentliche Methoden eines Objekts Implementierung unbekannt, weil unwichtig (für Objekt) Ähnlich wie vollkommen abstrakte Klassen interface statt class Eine Klassen kann auch mehrere Interfaces implementieren ( pseudo Mehrfachvererbung möglich) Ermöglichen es, Schnittstelle und Implementation sauber zu trennen Beispiel: class Foo implements Bar, GoGo


Herunterladen ppt "03. Mai EPROG Tutorium #5 Philipp Effenberger Verschiedene Collections List Set Stack Vererbung Casten Abstract Class Interface."

Ähnliche Präsentationen


Google-Anzeigen