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 EPROG Tutorium #5 Philipp Effenberger Verschiedene Collections List Set Stack Vererbung Casten Abstract Class Interface

2 03. Mai 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 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 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 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 * entspricht 4 * ((2 + 1) - 3) Einfach am Computer zu realisieren

6 03. Mai 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 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 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 Abstrakte Klassen nur teilweise Implementation der Klasse abstract class XYZ {…} Methoden ohne Körper! // ==nur Schnittstellendeklaration Konstruktor nicht aufrufbar

10 03. Mai 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