Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

10. Mai EPROG Tutorium #6 Philipp Effenberger Abstract Class Interface Unterschiede / Anwendung abstract class – interface.

Ähnliche Präsentationen


Präsentation zum Thema: "10. Mai EPROG Tutorium #6 Philipp Effenberger Abstract Class Interface Unterschiede / Anwendung abstract class – interface."—  Präsentation transkript:

1 10. Mai EPROG Tutorium #6 Philipp Effenberger Abstract Class Interface Unterschiede / Anwendung abstract class – interface Interface Comparable Packages Wünsche?

2 10. Mai 2 Abstrakte Klassen Nur teilweise Implementation der Klasse Kann als einheitliches Grundgerüst für Klassenhierarchien benützt werden (Verhalten, Eigenschaften) abstract class XYZ { … public abstract … methodenname(…) {} protected … methodenname(…) {…} } // abstract class XYZ Methoden ohne Körper! Nur Schnittstellendeklaration, alle abstrakten Methoden müssen in der erbenden Klasse implementiert werden muss überschrieben werden! Konstruktor nicht aufrufbar Variablen können definiert/initialisiert werden (member und static member, z.B. Konstanten wie pi oder eulersche Zahl…)

3 10. Mai 3 Interfaces Interface = Spezifikation einer Klasse = Schnittstellen der Klasse = public Methoden eines Objekts Interface selbst ist keine Klasse Hintergrund der Implementierung unbekannt, relevant ist für Benützer nur, worauf zugegriffen werden kann. Ähnlich wie vollkommen abstrakte Klassen interface statt class oder abstract class Eine Klasse kann auch mehrere Interfaces implementieren ( Mehrfachvererbung möglich!) Ein Interface selbst kann auch mehrere Interfaces implementieren interface name implements x, y, z { int… methodennamen(…){} … } //interface Ermöglichen es, Schnittstelle und Implementation sauber zu trennen

4 10. Mai 4 Interface – Abstract Class Unterschiede/Anwendung Interface z.B.: Mehrfachvererbung eine Klasse muss bestimmte Methode(n) implementieren Über Interface sind mehrere Subklassen ansprechbar private protected static final nicht erlaubt (ausser static final Konstanten) Da alle Methoden abstract, ist Schlüsselwort nicht notwendig Abstract Class z.B.: Subklassen müssen Methoden unterschiedlich implementieren, aber auch einheitliche Methoden vorhanden Festlegung des [Ober]Typs eines Objektes (es wird immer ein speziellerer Untertyp verwendet) Variablen und Konstanten deklarierbar Methoden müssen abstract gekennzeichnet sein, da Implementierung auch möglich

5 10. Mai 5 Interface Comparable Objekte müssen Methode compareTo( ) implementieren Beachte Transitivität und Symmetrie Eigenschaften class NumberObject implements Comparable { int i = 0; public int comparaTo( Integer n ) { if( i > n.getValue() ) return –1; else if( i==n.getValue() ) return 0; else return 1; } // compareTo } // NumberObject Ohne Generizität (Typangabe ) muss wie bei equals gecastet werden Wird z.B. von Arrays.sort, SortedSet,… verwendet

6 10. Mai 6 Packages Packages fassen Klassen zu logischen Einheiten zusammen z.B.: java.lang.Math fasst alle mathematischen Klassen und Konstanten zusammen eprog.jar: EprogIO und EprogException Ähnlich wie Verzeichnisse im Dateisystem. (Punkt) als Trennzweichen zwischen Namen Entweder in echten Verzeichnissen oder in einer.jar-Datei Klasse wird zu Package mit package hinzugefügt Mit import. wird eine einzelne Klasse aus einem Package importiert (mit * statt gesamte Package; aber nicht rekursiv) Das Package java.lang muss nicht importiert werden

7 10. Mai 7 Wünsche? Vererbung Beispiele Datentypen dynamisch/statisch in Bezug zum Kompiler Generizität super und Methodenüberdeckung (=welche Methode wird wann benützt bei Untertyp/Obertyp)


Herunterladen ppt "10. Mai EPROG Tutorium #6 Philipp Effenberger Abstract Class Interface Unterschiede / Anwendung abstract class – interface."

Ähnliche Präsentationen


Google-Anzeigen