Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

EPROG Tutorium #5 Philipp Effenberger

Ähnliche Präsentationen


Präsentation zum Thema: "EPROG Tutorium #5 Philipp Effenberger"—  Präsentation transkript:

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

2 Collections Nur Objekte koennen an Collection angefügt werden
int, char, double, boolean etc... sind keine Objekte Wrapperobjekte: Integer, Character, Double etc... ArrayList<Integer> tmp = new ArrayList<Integer>(); 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(); 03. Mai 2005

3 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... } 03. Mai 2005

4 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 03. Mai 2005

5 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 03. Mai 2005

6 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) 03. Mai 2005

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

8 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(); Transportmittel y = (Transportmittel) x; 03. Mai 2005

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

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


Herunterladen ppt "EPROG Tutorium #5 Philipp Effenberger"

Ähnliche Präsentationen


Google-Anzeigen