Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

EPROG Tutorium #6 Philipp Effenberger

Ähnliche Präsentationen


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

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

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 euler‘sche Zahl…) 10. Mai 2005

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

4 Interface – Abstract Class Unterschiede/Anwendung
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 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 10. Mai 2005

5 Interface Comparable<Typ>
Objekte müssen Methode compareTo(<Typ>) implementieren Beachte Transitivität und Symmetrie Eigenschaften class NumberObject implements Comparable<Integer> { 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<Typ>) muss wie bei equals gecastet werden Wird z.B. von Arrays.sort, SortedSet,… verwendet 10. Mai 2005

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 <packagename> hinzugefügt Mit import <package>.<class> wird eine einzelne Klasse aus einem Package importiert (mit * statt <class> gesamte Package; aber nicht rekursiv) Das Package java.lang muss nicht importiert werden 10. Mai 2005

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


Herunterladen ppt "EPROG Tutorium #6 Philipp Effenberger"

Ähnliche Präsentationen


Google-Anzeigen