Vererbung. CoMa-Übung XI TU Berlin. CoMa-Übung XI (TU Berlin) Vererbung / 47

Größe: px
Ab Seite anzeigen:

Download "Vererbung. CoMa-Übung XI TU Berlin. CoMa-Übung XI (TU Berlin) Vererbung / 47"

Transkript

1 Vererbung CoMa-Übung XI TU Berlin CoMa-Übung XI (TU Berlin) Vererbung / 47

2 Themen der Übung Themen heute Evaluation Rücksprachen IDEs Eclipse & Netbeans Packages, innere Klassen Vererbung, Generics Interfaces Enums Evaluation Heute bekommt ihr Evaluationsbögen zur CoMa-Übung. Nutzt Kommentare, schreibt, was euch gut gefällt oder euch nicht gefällt. CoMa-Übung XI (TU Berlin) Vererbung / 47

3 Rücksprachen Ablauf 30 min bei einem Tutor oder Assistenten. Finden in der letzten Vorlesungswoche ( ) statt. Termine werden über Listen im Sekretariat verteilt. Die Listen liegen noch NICHT aus. Ankündigung auf der HP & in der Vorlesung, wenn sich das ändert. Themen Alles seit dem Zwischentest: Datenstrukturen: Arrays, Listen, Queues, Stacks Rekursion Vererbung Landau-Notation, Kürzeste Wege, Sortieralgorithmen Definitionen und Ideen, keine Beweise CoMa-Übung XI (TU Berlin) Vererbung / 47

4 Rücksprachen (2) Zur Vorbereitung: Wiederholungs-Übungstermine am 4. und 5. Februar. Beantwortung von Fragen, Wiederholung von Stoff. Fragen / Wünsche per Mail an Martin oder am 4. / 5. mitbringen. Proberücksprachen Öffentliche Rücksprachen am 6.2. in der Übung. Öffentliche Rücksprachen sind Freiversuche Bei Nicht-Bestehen habt ihr trotzdem noch 2 Chancen. Meldet euch aber bitte nur, wenn ihr euch vorbereiten wollt. ;) Anmeldung per Mail an Martin oder in den Übungen am 4. & 5. Bei Nicht-Bestehen der Rücksprache: Wiederholungs-Rücksprache bei einem Assistenten in der ersten & zweiten Woche der Semesterferien. CoMa-Übung XI (TU Berlin) Vererbung / 47

5 IDEs IDEs (Integrated Development Environments) Editoren zum Schreiben von Java-Programmen mit vielen Hilfs-Features (für PA 11 hilfreich). Viele kostenlos & für die meisten Systeme verfügbar. Beispiele: Eclipse ( & Netbeans ( Eclipse Einführung Netbeans Einführung NetbeansNutzung.pdf Sehr ausführliches, komplett bebildertes Handbuch (Kapitel 3). CoMa-Übung XI (TU Berlin) Vererbung / 47

6 Packages CoMa-Übung XI (TU Berlin) Vererbung / 47

7 Innere Klassen CoMa-Übung XI (TU Berlin) Vererbung / 47

8 Vererbung Eigenschaften Eigenschaften: Ist-eine-Art-von -Beziehung Vererbung erweitert / spezialisiert CoMa-Übung XI (TU Berlin) Vererbung / 47

9 Vererbung Eigenschaften Eigenschaften: Ist-eine-Art-von -Beziehung Vererbung erweitert / spezialisiert Bsp: Jeder Studierender ist ein Mensch (aber nicht umgekehrt) Studenten haben Attribute, die andere Menschen nicht haben (z.b. Matrikelnummern) CoMa-Übung XI (TU Berlin) Vererbung / 47

10 Vererbung Eigenschaften Eigenschaften: Ist-eine-Art-von -Beziehung Vererbung erweitert / spezialisiert Bsp: Jeder Studierender ist ein Mensch (aber nicht umgekehrt) Studenten haben Attribute, die andere Menschen nicht haben (z.b. Matrikelnummern) Notation: class Student extends Mensch { private int matrikelnummer; CoMa-Übung XI (TU Berlin) Vererbung / 47

11 Vererbung Typen Typen: Ein Student-Objekt ist vom Typ Student und Mensch (sowie von allen Oberklassen von Mensch) CoMa-Übung XI (TU Berlin) Vererbung / 47

12 Vererbung Typen Typen: Ein Student-Objekt ist vom Typ Student und Mensch (sowie von allen Oberklassen von Mensch) Wird bei einer Klasse kein extends angegeben, geht der Compiler von extends Object aus CoMa-Übung XI (TU Berlin) Vererbung / 47

13 Vererbung Typen Typen: Ein Student-Objekt ist vom Typ Student und Mensch (sowie von allen Oberklassen von Mensch) Wird bei einer Klasse kein extends angegeben, geht der Compiler von extends Object aus Jede Klasse hat Object als Oberklasse Jede Klasse hat Methoden wie tostring() und equals() Object ist die einzige Klasse ohne Oberklasse Vererbungshierarchie ist ein Baum (keine Mehrfachvererbung) CoMa-Übung XI (TU Berlin) Vererbung / 47

14 Vererbung Test auf Typen Test auf Typen: Wir nehmen jetzt an, dass Student von Mensch erbt, und Mensch direkt von Object Ein Objekt vom Typ Mensch, lässt sich mit instanceof of seinen Typ testen Beispiel: Mensch mensch; CoMa-Übung XI (TU Berlin) Vererbung / 47

15 Vererbung Test auf Typen Test auf Typen: Wir nehmen jetzt an, dass Student von Mensch erbt, und Mensch direkt von Object Ein Objekt vom Typ Mensch, lässt sich mit instanceof of seinen Typ testen Beispiel: Mensch mensch; (mensch instanceof Student) ist false (mensch instanceof Mensch) ist true (mensch instanceof Object) ist true CoMa-Übung XI (TU Berlin) Vererbung / 47

16 Vererbung Sichtbarkeit Sichtbarkeits-Modifizierer: Es gibt private, <nichts>, protected, public private: Sichtbar innerhalb der Klasse <nichts>: Sichtbar innerhalb der Package protected: Sichtbar innerhalb der Package und in abgeleiteten Klassen public: Überall sichtbar CoMa-Übung XI (TU Berlin) Vererbung / 47

17 Vererbung Designregeln Regeln: A hat ein B (z.b. ein Student hat Matrikelnummer) A bekommt ein Datenfeld vom Typ B A ist von der Art B (z.b. ein Student ist ein Mensch) A wird von B abgeleitet A verhält sich wie B / A hat die Eigenschaft B (z.b. Studenten sind nach Matrikelnummern sortierbar) A implementiert Interface B CoMa-Übung XI (TU Berlin) Vererbung / 47

18 Vererbung Designregeln Regeln: Nicht immer eindeutig, Bsp. Quadrat und Rechteck Variante 1: Jedes Quadrat ist eine spezialisiertes Rechteck leite Quadrat von Rechteck ab Variante 2: Ein Rechteck hat 2 Seitenlängen, ein Quadrat nur ein Rechteck erweitert Quadrat, leite Quadrat von Rechteck ab Variante 3: Rechteck und Quadrat sind beides Vielecke leite beide von Vieleck ab Richtig und falsch gibt es nicht immer CoMa-Übung XI (TU Berlin) Vererbung / 47

19 Generics Vorteile & Deklaration Vorteile bisher: Ermöglichen parametrisierte Klassen (z.b. List<T>) Super, wenn Klassen nichts über T wissen müssen (Listen, Queues, Stacks,...) CoMa-Übung XI (TU Berlin) Vererbung / 47

20 Generics Vorteile & Deklaration Vorteile bisher: Ermöglichen parametrisierte Klassen (z.b. List<T>) Super, wenn Klassen nichts über T wissen müssen (Listen, Queues, Stacks,...) Deklaration: Parametrisierte Typen für Klassen (z.b. List<T>) Parametrisierte Typen für Methoden, z.b. public class Util { public <T> T random( T m, T n ) { return Math.random() > 0.5? m : n; CoMa-Übung XI (TU Berlin) Vererbung / 47

21 Generics Deklaration Deklaration: Variante 1: public class Util { public <T> T random( T m, T n ) { return Math.random() > 0.5? m : n; CoMa-Übung XI (TU Berlin) Vererbung / 47

22 Generics Deklaration Deklaration: Variante 1: public class Util { public <T> T random( T m, T n ) { return Math.random() > 0.5? m : n; Variante 2: public class Util<T> { public T random( T m, T n ) { return Math.random() > 0.5? m : n; CoMa-Übung XI (TU Berlin) Vererbung / 47

23 Generics Deklaration Deklaration: Variante 1: public class Util { public <T> T random( T m, T n ) { return Math.random() > 0.5? m : n; Variante 2: public class Util<T> { public T random( T m, T n ) { return Math.random() > 0.5? m : n; Beide Varianten funktionieren CoMa-Übung XI (TU Berlin) Vererbung / 47

24 Generics Deklaration Deklaration: Variante 1: public class Util { public <T> T random( T m, T n ) { return Math.random() > 0.5? m : n; Variante 2: public class Util<T> { public T random( T m, T n ) { return Math.random() > 0.5? m : n; Beide Varianten funktionieren Nur in einer Methode gebraucht nur dort deklarieren CoMa-Übung XI (TU Berlin) Vererbung / 47

25 Generics Deklaration Deklaration: Variante 3: public class Util<T> { public <T> T random( T m, T n ) { return Math.random() > 0.5? m : n; CoMa-Übung XI (TU Berlin) Vererbung / 47

26 Generics Deklaration Deklaration: Variante 3: public class Util<T> { public <T> T random( T m, T n ) { return Math.random() > 0.5? m : n; Würde auch gehen, aber unschön & unnötig Typ-Parameter der Klasse wird in der Methode überschrieben CoMa-Übung XI (TU Berlin) Vererbung / 47

27 Generics Type Erasure Effekt: Parametrisierte Typen existieren nur für den Kompiler Zur Laufzeit nicht CoMa-Übung XI (TU Berlin) Vererbung / 47

28 Generics Type Erasure Effekt: Parametrisierte Typen existieren nur für den Kompiler Folgen: Zur Laufzeit nicht if (list instanceof List<String>) funktioniert nicht if (list instanceof List) schon, sagt aber nichts über den Typ-Parameter CoMa-Übung XI (TU Berlin) Vererbung / 47

29 Generics Type Erasure Effekt: Parametrisierte Typen existieren nur für den Kompiler Folgen: Zur Laufzeit nicht if (list instanceof List<String>) funktioniert nicht if (list instanceof List) schon, sagt aber nichts über den Typ-Parameter.getClass() hilft auch nicht für Typ-Parameter List<Integer> intlist =...; List<String> strlist =...; boolean b = (intlist.getclass() == strlist.getclass()); //ergibt true CoMa-Übung XI (TU Berlin) Vererbung / 47

30 Generics Typanpassung Konzept: Generics lassen sich umgehen: List<Integer> intlist =...; List list = intlist; list.add( Hallo Welt! ); Haben den Typ der Liste angepasst bzw. vergessen Compiler warnt (zu recht), aber kein Compilefehler Generics nicht umgehen! CoMa-Übung XI (TU Berlin) Vererbung / 47

31 Generics Typanpassung Konzept: Generics lassen sich umgehen: List<Integer> intlist =...; List list = intlist; list.add( Hallo Welt! ); Haben den Typ der Liste angepasst bzw. vergessen Compiler warnt (zu recht), aber kein Compilefehler Generics nicht umgehen! Bemerkung: Jeder Integer ist auch ein Object Das hier: List<Integer> intlist =...; List<Object> list = intlist; gibt aber einen Compile-Fehler wegen obiger Situation CoMa-Übung XI (TU Berlin) Vererbung / 47

32 Generics Raw-Typen Implizit: Man kann Generics weglassen (z.b. List statt List<String>) Der Typ-Parameter hat dann den unbekannten Typ Praktisch ist dann Object der Typ-Parameter CoMa-Übung XI (TU Berlin) Vererbung / 47

33 Generics Raw-Typen Implizit: Man kann Generics weglassen (z.b. List statt List<String>) Der Typ-Parameter hat dann den unbekannten Typ Praktisch ist dann Object der Typ-Parameter Explizit: Will man explizit einen unbekannten Typ: List<?>? steht für den unbekannten Typ Vorteil: Compiler weiß, dass der Typ-Parameter nicht vergessen wurde Keine Warnung deswegen CoMa-Übung XI (TU Berlin) Vererbung / 47

34 Generics Der unbekannte Typ? Unterschied zwischen? und Object: LinkedList<Object> list = new LinkedList<Integer>(); Fehler (wie eben) LinkedList<?> list = new LinkedList<Integer>(); Erlaubt CoMa-Übung XI (TU Berlin) Vererbung / 47

35 Generics Typen Typ-Inferenz: Neue Methode für Util: public class Util { public static <T> T max( T m, T n ) { return (m > n)? m : n; CoMa-Übung XI (TU Berlin) Vererbung / 47

36 Generics Typen Typ-Inferenz: Neue Methode für Util: public class Util { public static <T> T max( T m, T n ) { return (m > n)? m : n; Geht so nicht > nur für primitive Zahltypen definiert CoMa-Übung XI (TU Berlin) Vererbung / 47

37 Generics Typen Typ-Inferenz: Neue Methode für Util: public class Util { public static <T> T max( T m, T n ) { return (m > n)? m : n; Geht so nicht > nur für primitive Zahltypen definiert Das Interface Comparable<T> stellt eine Methode int compareto(t t) für vergleichbare Objekte bereit CoMa-Übung XI (TU Berlin) Vererbung / 47

38 Generics Typen Typ-Inferenz: Neue Methode für Util: public class Util { public static <T> T max( T m, T n ) { return (m > n)? m : n; Geht so nicht > nur für primitive Zahltypen definiert Das Interface Comparable<T> stellt eine Methode int compareto(t t) für vergleichbare Objekte bereit Besser, geht aber immer noch nicht: public class Util { public static <T> T max( T m, T n ) { return (m.compareto(n) > 0)? m : n; CoMa-Übung XI (TU Berlin) Vererbung / 47

39 Generics Eingeschränkte Typen Typ-Einschränkung: So geht es: public class Util { public static <T extends Comparable<T>> T max( T m, T n ) { return (m.compareto(n) > 0)? m : n; CoMa-Übung XI (TU Berlin) Vererbung / 47

40 Generics Eingeschränkte Typen Typ-Einschränkung: So geht es: public class Util { public static <T extends Comparable<T>> T max( T m, T n ) { return (m.compareto(n) > 0)? m : n; <T extends Comparable<T>> erzwingt, dass nur Typen T zugelassen werden, die mit sich selbst vergleichbar sind CoMa-Übung XI (TU Berlin) Vererbung / 47

41 Generics Eingeschränkte Typen Typ-Einschränkung: So geht es: public class Util { public static <T extends Comparable<T>> T max( T m, T n ) { return (m.compareto(n) > 0)? m : n; <T extends Comparable<T>> erzwingt, dass nur Typen T zugelassen werden, die mit sich selbst vergleichbar sind Typen, die mit irgendwas anderem vergleichbar sind, reichen dafür nicht nicht <T extends Comparable<?>> geht daher nicht CoMa-Übung XI (TU Berlin) Vererbung / 47

42 Generics Eingeschränkte Typen Typ-Einschränkung mit extends extends erlaubt es, einen Typ-Parameter einzuschränken auf Unterklassen einer vorgegebenen Klasse Klassen, die bestimmte Interfaces implementieren CoMa-Übung XI (TU Berlin) Vererbung / 47

43 Generics Eingeschränkte Typen Typ-Einschränkung mit extends extends erlaubt es, einen Typ-Parameter einzuschränken auf Unterklassen einer vorgegebenen Klasse Klassen, die bestimmte Interfaces implementieren Kombinierbar: <T extends Comparable<T> & Cloneable> erfordert, dass T das Interface Comparable<T> implementiert und das Interface Cloneable implementiert. CoMa-Übung XI (TU Berlin) Vererbung / 47

44 Generics Eingeschränkte Typen Typ-Einschränkung mit extends extends erlaubt es, einen Typ-Parameter einzuschränken auf Unterklassen einer vorgegebenen Klasse Klassen, die bestimmte Interfaces implementieren Kombinierbar: <T extends Comparable<T> & Cloneable> erfordert, dass T das Interface Comparable<T> implementiert und das Interface Cloneable implementiert. Typ-Einschränkung mit super super erlaubt es, einen Typ-Parameter einzuschränken auf Oberklassen einer vorgegebenen Klasse CoMa-Übung XI (TU Berlin) Vererbung / 47

45 Beispiel mit extends, super,? max-methode: Methode von eben erlaubt alles mit sich selbst vergleichbare public class Util { public static <T extends Comparable<T>> T max( T m, T n ) { return (m.compareto(n) > 0)? m : n; CoMa-Übung XI (TU Berlin) Vererbung / 47

46 Beispiel mit extends, super,? max-methode: Methode von eben erlaubt alles mit sich selbst vergleichbare public class Util { public static <T extends Comparable<T>> T max( T m, T n ) { return (m.compareto(n) > 0)? m : n; Stellt euch vor, wir haben Klassen Obst und Apfel Apfel erbt von Obst Apfel implementiert Comparable<Obst> (Vergleich auf Vitamingehalt,...) CoMa-Übung XI (TU Berlin) Vererbung / 47

47 Beispiel mit extends, super,? max-methode: Methode von eben erlaubt alles mit sich selbst vergleichbare public class Util { public static <T extends Comparable<T>> T max( T m, T n ) { return (m.compareto(n) > 0)? m : n; Stellt euch vor, wir haben Klassen Obst und Apfel Apfel erbt von Obst Apfel implementiert Comparable<Obst> (Vergleich auf Vitamingehalt,...) Apfel nicht direkt mit sich selbst vergleichbar max(apfel1,apfel2) geht daher nicht CoMa-Übung XI (TU Berlin) Vererbung / 47

48 Beispiel mit extends, super,? max-methode Lösung: Neue Methode: public class Util { public static <T extends Comparable<? super T>> T max( T m, T n ) { return (m.compareto(n) > 0)? m : n; CoMa-Übung XI (TU Berlin) Vererbung / 47

49 Beispiel mit extends, super,? max-methode Lösung: Neue Methode: public class Util { public static <T extends Comparable<? super T>> T max( T m, T n ) { return (m.compareto(n) > 0)? m : n; Erlaubt alles mit einer Oberklasse von sich vergleichbare CoMa-Übung XI (TU Berlin) Vererbung / 47

50 Beispiel mit extends, super,? max-methode Lösung: Neue Methode: public class Util { public static <T extends Comparable<? super T>> T max( T m, T n ) { return (m.compareto(n) > 0)? m : n; Erlaubt alles mit einer Oberklasse von sich vergleichbare max(apfel1,apfel2) geht CoMa-Übung XI (TU Berlin) Vererbung / 47

51 Generische Arrays erstellen Beobachtung: T[] test = new T[3]; geht nicht Problem: Infos über den Typ von T zur Laufzeit nicht mehr vorhanden Lösung: den Typ von T selbst speichern! Datentyp für Typen Ein Objekt der Klasse Class<T> stellt den Typ T dar Objekt ist mittels Classname.class zu finden (z.b. String.class) Gibts auch für Arrays eines Typs: Classname[].class (z.b. String[].class) CoMa-Übung XI (TU Berlin) Vererbung / 47

52 Generische Arrays erstellen static <T> T[] createarray(class<t[]> type, int len) { return type.cast( Array.newInstance(type.getComponentType(), len)); Methode bekommt einen Typ type und eine Länge len übergeben Erzeugt ein Array vom gewünschten Typ und Länge und gibt es zurück Etwas umständlich, funktioniert aber Methode erfordert import java.lang.reflect.array; CoMa-Übung XI (TU Berlin) Vererbung / 47

53 Interfaces & Schnittstellen Idee Interfaces stellen Beziehungen wie A hat die Eigenschaft B Ein Student hat die Eigenschaft, mit anderen Studenten vergleichbar zu sein ( Interface Comparable) A ist von der Art B Ein Matrikelnummer-Sortierer für Studenten ist von der Art, ein Sortierer für Studenten zu sein ( Interface Comparator) CoMa-Übung XI (TU Berlin) Vererbung / 47

54 Interfaces & Schnittstellen Idee Interfaces stellen Beziehungen wie A hat die Eigenschaft B Ein Student hat die Eigenschaft, mit anderen Studenten vergleichbar zu sein ( Interface Comparable) A ist von der Art B Ein Matrikelnummer-Sortierer für Studenten ist von der Art, ein Sortierer für Studenten zu sein ( Interface Comparator) Mehrere Interfaces pro Klasse erlaubt eine Art von Mehrfachvererbung CoMa-Übung XI (TU Berlin) Vererbung / 47

55 Interfaces Deklaration Deklaration von Interfaces Schlüsselwort interface Sichtbarkeitsmodifizierer (z.b. public ) Name: Konvention wie bei Klassen Generics möglich CoMa-Übung XI (TU Berlin) Vererbung / 47

56 Interfaces Deklaration Deklaration von Interfaces Schlüsselwort interface Sichtbarkeitsmodifizierer (z.b. public ) Name: Konvention wie bei Klassen Generics möglich Beispiel: public interface Comparable<T> { CoMa-Übung XI (TU Berlin) Vererbung / 47

57 Interfaces Deklaration Deklaration von Interfaces Schlüsselwort interface Sichtbarkeitsmodifizierer (z.b. public ) Name: Konvention wie bei Klassen Generics möglich Beispiel: public interface Comparable<T> { Inhalt von Interfaces Keine Konstruktoren Nur public abstract Methoden Schlüsselwörter werden automatisch ergänzt nicht selbst schreiben Nur static final Variablen (d.h. Konstanten) Schlüsselwörter werden automatisch ergänzt nicht selbst schreiben CoMa-Übung XI (TU Berlin) Vererbung / 47

58 Interfaces Beispiel public interface Comparable<T> { int MAGIC NUMBER = 4; boolean compareto(t t); CoMa-Übung XI (TU Berlin) Vererbung / 47

59 Interfaces Beispiel public interface Comparable<T> { int MAGIC NUMBER = 4; boolean compareto(t t); Deklaration von Interfaces Deklariert ein öffentliches Interface namens Comparable<T> Generischer Typ T CoMa-Übung XI (TU Berlin) Vererbung / 47

60 Interfaces Beispiel public interface Comparable<T> { int MAGIC NUMBER = 4; boolean compareto(t t); Deklaration von Interfaces Deklariert ein öffentliches Interface namens Comparable<T> Generischer Typ T Deklariert eine Methode compareto Rückgabewert boolean Parameter vom Typ T Implizit public und abstract Muss von implementierenden Klassen implementiert werden CoMa-Übung XI (TU Berlin) Vererbung / 47

61 Interfaces Beispiel public interface Comparable<T> { int MAGIC NUMBER = 4; boolean compareto(t t); Deklaration von Interfaces Deklariert ein öffentliches Interface namens Comparable<T> Generischer Typ T Deklariert eine Methode compareto Rückgabewert boolean Parameter vom Typ T Implizit public und abstract Muss von implementierenden Klassen implementiert werden Konstante MAGIC NUMBER mit Wert 4 Steht implementierenden Klassen zur Verfügung Konstante Großschreiben CoMa-Übung XI (TU Berlin) Vererbung / 47

62 Interfaces Was nicht geht Verboten Konstruktoren Statische Methoden Methoden, die nicht public sind Methoden, die nicht abstract sind (d.h. ausprogrammierte Methoden gehen nicht) Objektvariablen Klassenvariablen, die nicht final sind CoMa-Übung XI (TU Berlin) Vererbung / 47

63 Interfaces Was nicht geht Verboten Konstruktoren Statische Methoden Methoden, die nicht public sind Methoden, die nicht abstract sind (d.h. ausprogrammierte Methoden gehen nicht) Objektvariablen Klassenvariablen, die nicht final sind Und wenn man das braucht? Abstrakte Klassen abstract class Können alles, was Interfaces können Können alles, was Interfaces verboten ist Nachteil: man kann nur von einer abstrakten Klasse erben CoMa-Übung XI (TU Berlin) Vererbung / 47

64 Interfaces Markerinterfaces Spezialfall Markerinterfaces CoMa-Übung XI (TU Berlin) Vererbung / 47

65 Interfaces Markerinterfaces Spezialfall Markerinterfaces Leeres Interface (d.h. ohne Konstanten und Methoden) z.b. public interface Cloneable { CoMa-Übung XI (TU Berlin) Vererbung / 47

66 Interfaces Markerinterfaces Spezialfall Markerinterfaces Leeres Interface (d.h. ohne Konstanten und Methoden) z.b. public interface Cloneable { Kann mit instanceof getestet werden z.b. if (object instanceof Cloneable) so kann leicht getestet werden, ob clone()-aufrufe auf einem Objekt Sinn machen CoMa-Übung XI (TU Berlin) Vererbung / 47

67 Interfaces Markerinterfaces Spezialfall Markerinterfaces Leeres Interface (d.h. ohne Konstanten und Methoden) z.b. public interface Cloneable { Kann mit instanceof getestet werden z.b. if (object instanceof Cloneable) so kann leicht getestet werden, ob clone()-aufrufe auf einem Objekt Sinn machen Subinterfaces Interfaces können erweitert werden mittels extends z.b. public interface Comparable<T> extends Cloneable { CoMa-Übung XI (TU Berlin) Vererbung / 47

68 Interfaces Markerinterfaces Spezialfall Markerinterfaces Leeres Interface (d.h. ohne Konstanten und Methoden) z.b. public interface Cloneable { Kann mit instanceof getestet werden z.b. if (object instanceof Cloneable) so kann leicht getestet werden, ob clone()-aufrufe auf einem Objekt Sinn machen Subinterfaces Interfaces können erweitert werden mittels extends z.b. public interface Comparable<T> extends Cloneable { Comparable<T> erhält dann alle Methoden und Konstanten von Cloneable CoMa-Übung XI (TU Berlin) Vererbung / 47

69 Interfaces Implementierung Implementierung Schlüsselwort implements z.b. public class Student extends Mensch implements Comparable<Student>, Cloneable Die Klasse Student implementiert die Interfaces Comparable<Student> und Cloneable public boolean compareto(student student) muss implementiert werden für das Interface Comparable<Student> (oder wir machen die Klasse Student abstrakt) Cloneable ist ein Markerinterface, nichts zu implementieren Zusätzlich erbt die Klasse Student von der Klasse Mensch man erbt immer von einer Klasse und beliebig vielen Interfaces CoMa-Übung XI (TU Berlin) Vererbung / 47

70 Interfaces Mehrfachvererbung Was passiert, wenn zwei Interfaces dieselbe Methode haben? Beispiel: public interface Fahrzeug { void bewegedich(); public interface Lebewesen { void bewegedich(); public interface LebendesFahrzeug extends Fahrzeug, Lebewesen { CoMa-Übung XI (TU Berlin) Vererbung / 47

71 Interfaces Mehrfachvererbung Was passiert, wenn zwei Interfaces dieselbe Methode haben? Beispiel: public interface Fahrzeug { void bewegedich(); public interface Lebewesen { void bewegedich(); public interface LebendesFahrzeug extends Fahrzeug, Lebewesen { Kein Widerspruch okay CoMa-Übung XI (TU Berlin) Vererbung / 47

72 Interfaces Mehrfachvererbung Was passiert, wenn zwei Interfaces dieselbe Methode haben? Beispiel: public interface Fahrzeug { void bewegedich(); public interface Lebewesen { boolean bewegedich(); public interface LebendesFahrzeug extends Fahrzeug, Lebewesen { CoMa-Übung XI (TU Berlin) Vererbung / 47

73 Interfaces Mehrfachvererbung Was passiert, wenn zwei Interfaces dieselbe Methode haben? Beispiel: public interface Fahrzeug { void bewegedich(); public interface Lebewesen { boolean bewegedich(); public interface LebendesFahrzeug extends Fahrzeug, Lebewesen { Widerspruch Compilefehler CoMa-Übung XI (TU Berlin) Vererbung / 47

74 Interfaces Mehrfachvererbung Was passiert, wenn zwei Interfaces dieselbe Konstante haben? Beispiel: public interface Fahrzeug { int MAGIC = 4; public interface Lebewesen { String MAGIC = Huhu ; public interface LebendesFahrzeug extends Fahrzeug, Lebewesen { CoMa-Übung XI (TU Berlin) Vererbung / 47

75 Interfaces Mehrfachvererbung Was passiert, wenn zwei Interfaces dieselbe Konstante haben? Beispiel: public interface Fahrzeug { int MAGIC = 4; public interface Lebewesen { String MAGIC = Huhu ; public interface LebendesFahrzeug extends Fahrzeug, Lebewesen { Für den Compiler okay CoMa-Übung XI (TU Berlin) Vererbung / 47

76 Interfaces Mehrfachvererbung Was passiert, wenn zwei Interfaces dieselbe Konstante haben? Beispiel: public interface Fahrzeug { int MAGIC = 4; public interface Lebewesen { String MAGIC = Huhu ; public interface LebendesFahrzeug extends Fahrzeug, Lebewesen { Für den Compiler okay Zugriff über Fahrzeug.MAGIC bzw. Lebenwesen.MAGIC Sonst Compile-Fehler CoMa-Übung XI (TU Berlin) Vererbung / 47

77 Interfaces Vorteile Vorteile von Interfaces Unabhängig von Implementierung Beschränkung auf das Nötigste CoMa-Übung XI (TU Berlin) Vererbung / 47

78 Interfaces Vorteile Vorteile von Interfaces Unabhängig von Implementierung Beschränkung auf das Nötigste Leichter wiederzuverwenden Leicht zu ändern CoMa-Übung XI (TU Berlin) Vererbung / 47

79 Interfaces Vorteile Vorteile von Interfaces Unabhängig von Implementierung Beschränkung auf das Nötigste Leichter wiederzuverwenden Leicht zu ändern Noch ein Beispiel Interface für Sortieralgorithmen: public interface Sorter<T> { void sort(list<t> list, Comparator<T> c); CoMa-Übung XI (TU Berlin) Vererbung / 47

80 Interfaces Vorteile Vorteile von Interfaces Unabhängig von Implementierung Beschränkung auf das Nötigste Leichter wiederzuverwenden Leicht zu ändern Noch ein Beispiel Interface für Sortieralgorithmen: public interface Sorter<T> { void sort(list<t> list, Comparator<T> c); Sortiert eine gegebene Liste Vergleiche zweier Objekte über einen Comparator<T> (Java-Interface) CoMa-Übung XI (TU Berlin) Vererbung / 47

81 Interfaces Beispiel Interface für Sortieralgorithmen: public interface Sorter<T> { void sort(list<t> list, Comparator<T> c); CoMa-Übung XI (TU Berlin) Vererbung / 47

82 Interfaces Beispiel Interface für Sortieralgorithmen: public interface Sorter<T> { void sort(list<t> list, Comparator<T> c); Interface für Vergleiche: public interface Comparator<T> { int compare(t o1, T o2); CoMa-Übung XI (TU Berlin) Vererbung / 47

83 Interfaces Beispiel Interface für Sortieralgorithmen: public interface Sorter<T> { void sort(list<t> list, Comparator<T> c); Interface für Vergleiche: public interface Comparator<T> { int compare(t o1, T o2); Jetzt: 2-dimensionale Objekte nach Fläche oder Umfang sortieren public abstract class TwoDimensionalObject { public abstract double area(); public abstract double perimeter(); CoMa-Übung XI (TU Berlin) Vererbung / 47

84 Interfaces Beispiel Basisklasse für 2-dimensionale Objekte: public abstract class TDO { public abstract double area(); public abstract double perimeter(); CoMa-Übung XI (TU Berlin) Vererbung / 47

85 Interfaces Beispiel Basisklasse für 2-dimensionale Objekte: public abstract class TDO { public abstract double area(); public abstract double perimeter(); Abgeleitete konkrete Klassen: public class Rectangle extends TDO {... CoMa-Übung XI (TU Berlin) Vererbung / 47

86 Interfaces Beispiel Basisklasse für 2-dimensionale Objekte: public abstract class TDO { public abstract double area(); public abstract double perimeter(); Abgeleitete konkrete Klassen: public class Rectangle extends TDO {... Jetzt: Comparator für Sortieralgos implementieren CoMa-Übung XI (TU Berlin) Vererbung / 47

87 Interfaces Beispiel Vergleich basiert auf Fläche: import java.util.comparator; public class AscendingAreaComparator implements Comparator<TDO> { public int compare(tdo o1, TDO o2) { return o1.area() - o2.area(); import java.util.comparator; public class DescendingAreaComparator implements Comparator<TDO> { public int compare(tdo o1, TDO o2) { return o2.area() - o1.area(); CoMa-Übung XI (TU Berlin) Vererbung / 47

88 Interfaces Beispiel Vergleich basiert auf Umfang: import java.util.comparator; public class AscendingPerimeterComparator implements Comparator<TDO> { public int compare(tdo o1, TDO o2) { return o1.perimeter() - o2.perimeter(); import java.util.comparator; public class DescendingPerimeterComparator implements Comparator<TDO> { public int compare(tdo o1, TDO o2) { return o2.perimeter() - o1.perimeter(); CoMa-Übung XI (TU Berlin) Vererbung / 47

89 Zusammenfassung CoMa-Übung XI (TU Berlin) Vererbung / 47

90 Aufzählungen mit enum enum erlaubt es, Aufzählungstypen zu definieren Beispiel: Weiß, Orange, Rot als Typ zum Knotenfärben bei Tiefensuche Lässt sich auch über Integer realisieren (0 = Weiß, 1 = Orange, 2 = Rot) Problem dabei: Kann ungültige Integer-Werte zuweisen (z.b. 3) CoMa-Übung XI (TU Berlin) Vererbung / 47

91 Aufzählungen mit enum enum erlaubt es, Aufzählungstypen zu definieren Beispiel: Weiß, Orange, Rot als Typ zum Knotenfärben bei Tiefensuche Lässt sich auch über Integer realisieren (0 = Weiß, 1 = Orange, 2 = Rot) Problem dabei: Kann ungültige Integer-Werte zuweisen (z.b. 3) public enum NodeColor { WHITE, ORANGE, RED; CoMa-Übung XI (TU Berlin) Vererbung / 47

92 Aufzählungen mit enum enum erlaubt es, Aufzählungstypen zu definieren Beispiel: Weiß, Orange, Rot als Typ zum Knotenfärben bei Tiefensuche Lässt sich auch über Integer realisieren (0 = Weiß, 1 = Orange, 2 = Rot) Problem dabei: Kann ungültige Integer-Werte zuweisen (z.b. 3) public enum NodeColor { WHITE, ORANGE, RED; Deklariert einen öffentlichen Aufzählungstyp NodeColor mit drei möglichen Werten: WHITE, ORANGE, RED Aufzählungstypen (auch Enumerations) genannt sind spezielle Klassen Mögliche Werte eines Aufzählungstyps sind Konstanten Großbuchstaben verwenden CoMa-Übung XI (TU Berlin) Vererbung / 47

93 Aufzählungen mit enum public enum NodeColor { WHITE, ORANGE, RED; Benutzung der NodeColor-Aufzählung Deklaration einer Variablen vom Typ NodeColor: NodeColor color; NodeColor-Werte zuweisen: color = NodeColor.WHITE; NodeColor-Werte vergleichen: Vergleiche mit ==, nicht equals if (color == NodeColor.WHITE)... CoMa-Übung XI (TU Berlin) Vererbung / 47

94 Fallunterscheidungen mit enum und switch switch erlaubt Fallunterscheidungen basierend auf dem Wert einer Integer- oder Aufzählungsvariable hier für Aufzählungen CoMa-Übung XI (TU Berlin) Vererbung / 47

95 Fallunterscheidungen mit enum und switch switch erlaubt Fallunterscheidungen basierend auf dem Wert einer Integer- oder Aufzählungsvariable hier für Aufzählungen public enum NodeColor { WHITE, ORANGE, RED; CoMa-Übung XI (TU Berlin) Vererbung / 47

96 Fallunterscheidungen mit enum und switch switch erlaubt Fallunterscheidungen basierend auf dem Wert einer Integer- oder Aufzählungsvariable hier für Aufzählungen public enum NodeColor { WHITE, ORANGE, RED; switch (color) { case WHITE: System.out.println( Weiß! ); break; case ORANGE: System.out.println( Orange! ); break; case RED: System.out.println( Rot! ); break; CoMa-Übung XI (TU Berlin) Vererbung / 47

97 Fallunterscheidungen mit enum und switch switch (color) { case WHITE: System.out.println( Weiß! ); break; case ORANGE: System.out.println( Orange! ); break; case RED: System.out.println( Rot! ); break; default: System.out.println( Unbekannt! ); CoMa-Übung XI (TU Berlin) Vererbung / 47

98 Fallunterscheidungen mit enum und switch switch (color) { case WHITE: System.out.println( Weiß! ); break; case ORANGE: System.out.println( Orange! ); break; case RED: System.out.println( Rot! ); break; default: System.out.println( Unbekannt! ); Wert der Variable color wird unterschieden NullPointerException wenn color == null ist CoMa-Übung XI (TU Berlin) Vererbung / 47

99 Fallunterscheidungen mit enum und switch switch (color) { case WHITE: System.out.println( Weiß! ); break; case ORANGE: System.out.println( Orange! ); break; case RED: System.out.println( Rot! ); break; default: System.out.println( Unbekannt! ); Wert der Variable color wird unterschieden NullPointerException wenn color == null ist Springt zu passenden case, führt Anweisungen aus Passt kein case, wird zu default gesprungen break verlässt die switch-anweisung CoMa-Übung XI (TU Berlin) Vererbung / 47

100 Fallunterscheidungen mit enum und switch switch (color) { case WHITE: System.out.println( Weiß! ); break; case ORANGE: System.out.println( Orange! ); break; case RED: System.out.println( Rot! ); break; default: System.out.println( Unbekannt! ); Bereichsabfragen (0-18, 18-99,...) sind mit switch nicht möglich CoMa-Übung XI (TU Berlin) Vererbung / 47

101 Fallunterscheidungen mit enum und switch switch (color) { case WHITE: System.out.println( Weiß! ); break; case ORANGE: System.out.println( Orange! ); break; case RED: System.out.println( Rot! ); break; default: System.out.println( Unbekannt! ); Bereichsabfragen (0-18, 18-99,...) sind mit switch nicht möglich Es werden nur byte, char, short, int und Aufzählungen unterstützt CoMa-Übung XI (TU Berlin) Vererbung / 47

102 Fallunterscheidungen mit enum und switch switch (color) { case WHITE: System.out.println( Weiß! ); break; case ORANGE: System.out.println( Orange! ); break; case RED: System.out.println( Rot! ); break; default: System.out.println( Unbekannt! ); Bereichsabfragen (0-18, 18-99,...) sind mit switch nicht möglich Es werden nur byte, char, short, int und Aufzählungen unterstützt Ohne break werden nachfolgende Fälle auch abgearbeitet! CoMa-Übung XI (TU Berlin) Vererbung / 47

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester

Mehr

Das Interface-Konzept am Beispiel der Sprache Java

Das Interface-Konzept am Beispiel der Sprache Java Das Interface-Konzept am Beispiel der Sprache Java Klaus Kusche, November 2013 Inhalt Motivation: Wozu braucht man Interfaces? Interfaces in Java Was spricht gegen die große Lösung? Voraussetzungen Kenntnisse

Mehr

Heute. Nachbetrachtung Wissensüberprüfung. Sortieren Interface Comparable TreeSet Sortieren von Arrays: Arrays.sort() 3.12.

Heute. Nachbetrachtung Wissensüberprüfung. Sortieren Interface Comparable TreeSet Sortieren von Arrays: Arrays.sort() 3.12. Heute Nachbetrachtung Wissensüberprüfung Sortieren Interface Comparable TreeSet Sortieren von Arrays: Arrays.sort() 3.12.2015 IT I - VO 9 1 Organisatorisches Zwischentest findet am 16.12. von 17:30 bis

Mehr

Informatik II Übung 6

Informatik II Übung 6 Informatik II Übung 6 Gruppe 2 Carina Fuss cfuss@student.ethz.ch 11.4.2018 Carina Fuss 11.4.2018 1 Übung 6 Nachbesprechung Übung 5 Objektorientierung Vererbung, Polymorphie, abstrakte Klassen, Interfaces,

Mehr

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18

Mehr

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener

Mehr

Wiederholung. Klassenhierarchie:

Wiederholung. Klassenhierarchie: Wiederholung Klassenhierarchie: class Unter extends Ober {... Die Unterklasse Unter erweitert die Funktionalität ihrer Oberklasse Ober. Objekte der Klasse Unter können anstelle von Objekten der Klasse

Mehr

7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen

7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen 7. Schnittstellen Grundlagen zu Schnittstellen 7. Schnittstellen Eine Schnittstelle (Interface) ist eine Spezifikation eines Typs in Form eines Typnamens und einer Menge von Methoden, die keine Implementierungen

Mehr

Weitere Beispiele. Beispiel CD-Spieler: Exemplare eines abstrakten Konzepts. 7. Schnittstellen. Schnittstelle: Syntax

Weitere Beispiele. Beispiel CD-Spieler: Exemplare eines abstrakten Konzepts. 7. Schnittstellen. Schnittstelle: Syntax Weitere Beispiele Beispiel CD-Spieler: Exemplare eines abstrakten Konzepts public interface Funktion { boolean istimdefbereich(double x); double wert(double x); String gibbeschreibung(); public interface

Mehr

12 Abstrakte Klassen, finale Klassen und Interfaces

12 Abstrakte Klassen, finale Klassen und Interfaces 12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,

Mehr

Programmieren in Java

Programmieren in Java Einführung in die Objektorientierung Teil 4 Interfaces, innere Klassen und Polymorphie 2 Vererbung im Klassendiagram (Wiederholung) Vererbung repräsentiert eine ist ein Beziehung zwischen Klassen Ware

Mehr

Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke Institut für Programmierung und Reaktive Systeme Java 7 Markus Reschke 14.10.2014 Vererbung in Java Vererbung ermöglicht es, Klassen zu spezialisieren Wiederverwendung vorhandener Klassen Kindsklasse erhält

Mehr

1 Abstrakte Klassen, finale Klassen und Interfaces

1 Abstrakte Klassen, finale Klassen und Interfaces 1 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,

Mehr

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0 9 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Wiederholung: Gerüstbeispiel Ein Duo, Quarto oder Sexto ist ein Gerüst. Die Klassen Duo, Quarto und Sexto sollen durch Vererbung

Mehr

Info B VL 8: Abstrakte Klassen & Interfaces

Info B VL 8: Abstrakte Klassen & Interfaces Info B VL 8: Abstrakte Klassen & Interfaces Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 8: Abstrakte

Mehr

Die abstrakte Klasse Expression:

Die abstrakte Klasse Expression: Die abstrakte Klasse Expression: Expression abstract evaluate() Add Neg Const 501 Die abstrakte Klasse Expression: Expression abstract evaluate() Add Neg Const Leider (zum Glück?) lässt sich nicht die

Mehr

Neuere Sprachelemente in Java

Neuere Sprachelemente in Java Softwaretechnik 1 Vorlesung Neuere Sprachelemente in Java Prof. Dr. Bernhard Rumpe Technische Universität Braunschweig http://www.sse.cs.tu-bs.de/ Seite 2 Neuerungen seit Java 5.0 Java Spracherweiterungen

Mehr

14 Abstrakte Klassen, finale Klassen, Interfaces

14 Abstrakte Klassen, finale Klassen, Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse

Mehr

Algorithmen und Datenstrukturen 07

Algorithmen und Datenstrukturen 07 (7. Juni 2012) 1 Besprechung Blatt 6 Fragen 2 Referenzen Referenzsemantik 3 Vererbung Allgemein abstract Interfaces Vererbung in UML 4 Vorbereitung Blatt 7 Anmerkungen Fragen Fragen zu Blatt 6? Referenzsemantik

Mehr

14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen

14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen Auswertung von Ausdrücken Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt.

Mehr

Kapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Kapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz Kapitel 13 Abstrakte Methoden und Interfaces 13. Abstrakte Klassen und Interfaces 1. Abstrakte Klassen 2. Interfaces und Mehrfachvererbung Folie 12.2 Abstrakte Methoden und Klassen Manchmal macht es überhaupt

Mehr

Programmieren in Java

Programmieren in Java Einführung in die Objektorientierung Teil 4 Interfaces, Polymorphie und innere Klassen 2 Vererbung im Klassendiagramm (Wiederholung) Vererbung repräsentiert eine ist ein Beziehung zwischen Klassen Object

Mehr

14 Abstrakte Klassen, finale Klassen, Interfaces

14 Abstrakte Klassen, finale Klassen, Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse

Mehr

Vorkurs Informatik WiSe 15/16

Vorkurs Informatik WiSe 15/16 Java 7 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 21.10.2015 Technische Universität Braunschweig, IPS Überblick OO in Java Vererbung Abstrakte Klassen und Interfaces 21.10.2015 Dr. Werner Struckmann

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Abstrakte Klassen und Methoden & Interfaces Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 22 Einstieg in die Informatik mit Java Generics Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Überblick Generics 2 Generische Klassen 3 Generische Methoden 4

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 13 Einstieg in die Informatik mit Java Schnittstellen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 13 1 Einführung 2 Definition einer Schnittstelle 3 Implementierung

Mehr

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen Teil 5 - Java Programmstruktur Operatoren Schlüsselwörter Datentypen 1 Kommentare in Java In Java gibt es drei Möglichkeiten zur Kommentierung: // Kommentar Alle Zeichen nach dem // werden ignoriert. für

Mehr

1 Einleitung Generizität Syntax... 2

1 Einleitung Generizität Syntax... 2 Inhaltsverzeichnis Inhaltsverzeichnis 1 Einleitung 1 1.1 Generizität................................ 1 1.2 Syntax.................................. 2 2 Realisierung 2 2.1 Compilierung generischer Klassen...................

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 5 12.04.2017 Was bisher geschah... Objektorientierte Programmierung Klassen und Objekte, Attribute

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 35 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 35 1 Grundlagen 2 Verdeckte Variablen 3 Verdeckte Methoden 4 Konstruktoren

Mehr

IT I: Heute. abstrakte Methoden und Klassen. Interfaces. Interfaces List, Set und Collection IT I - VO 7 1

IT I: Heute. abstrakte Methoden und Klassen. Interfaces. Interfaces List, Set und Collection IT I - VO 7 1 IT I: Heute abstrakte Methoden und Klassen Interfaces Interfaces List, Set und Collection 22.11.2018 IT I - VO 7 1 Wissensüberprüfung Überschreiben von Methoden: Aufruf der Methode der Oberklasse ist oft

Mehr

Objektorientierte Programmierung. Kapitel 14: Interfaces

Objektorientierte Programmierung. Kapitel 14: Interfaces 14. Interfaces 1/26 Objektorientierte Programmierung Kapitel 14: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2013/14 http://www.informatik.uni-halle.de/ brass/oop13/

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren

Mehr

Algorithmen und Datenstrukturen. Übersicht. Interfaces und Generics. InsertionSort für Punkte. InsertionSort für Punkte

Algorithmen und Datenstrukturen. Übersicht. Interfaces und Generics. InsertionSort für Punkte. InsertionSort für Punkte Algorithmen und Datenstrukturen Wintersemester 2012/13 21. Vorlesung Übersicht Liste und InsertionSort für e für Objekte beliebiger Klassen für Objekte von Klassen, die ein(e) Nutzer(in) festlegen kann

Mehr

Abschnitt 10: Typisierte Klassen

Abschnitt 10: Typisierte Klassen Abschnitt 10: Typisierte Klassen 10. Typisierte Klassen 10.1 Einführung: Grenzen der Typ-Polymorphie durch Vererbung 10.2 Grundlagen 10.3 Vererbung bei typisierten Klassen 10.4 Wildcards, obere und untere

Mehr

II.4.1 Unterklassen und Vererbung - 1 -

II.4.1 Unterklassen und Vererbung - 1 - 1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.4.1 Unterklassen und Vererbung

Mehr

Spracherweiterungen in Java 5

Spracherweiterungen in Java 5 Spracherweiterungen in Java 5 Dennis Giffhorn Lehrstuhl für Programmierparadigmen Universität Karlsruhe 17. April 2008 Spracherweiterungen in Java 5 Generics (s. Vorlesung) Annotations Enumerations Methoden

Mehr

3. Übungsbesprechung Programmkonstruktion

3. Übungsbesprechung Programmkonstruktion 3. Übungsbesprechung Programmkonstruktion Karl Gmeiner karl@complang.tuwien.ac.at December 12, 2011 K Gmeiner (karl@complang.tuwien.ac.at) 3. Übungsbesprechung PK December 12, 2011 1 / 13 Rückblick und

Mehr

Präsentation Interfaces

Präsentation Interfaces Einführung in Java Präsentation Interfaces Nozar Delassaei Marvi Inhalt 1. Erinnerung Klasse Objekte Beispiel Klasse Abstrakte Klasse Beispiel Abstrakte Klasse Mehrfachvererbung-1 Mehrfachvererbung-2 2.

Mehr

II.4.2 Abstrakte Klassen und Interfaces - 1 -

II.4.2 Abstrakte Klassen und Interfaces - 1 - 1. Unterklassen und Vererbung 2. Abstrakte Klassen und Interfaces 3. Modularität und Pakete 4. Ausnahmen (Exceptions) 5. Generische Datentypen 6. Collections II.4.2 Abstrakte Klassen und Interfaces - 1

Mehr

Programmieren in Java -Eingangstest-

Programmieren in Java -Eingangstest- Programmieren in Java -Eingangstest- Nummer: 1. Studiengang: Informatik B.Sc. Informatik M.Sc. ESE B.Sc. ESE M.Sc. Sonstiges: Fachsemester: Bitte Fragen, die Sie nicht beantworten können unbedingt mit

Mehr

Tafelübung 07 Algorithmen und Datenstrukturen

Tafelübung 07 Algorithmen und Datenstrukturen Tafelübung 07 Algorithmen und Datenstrukturen Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Vererbung Grundlagen Abstrakte

Mehr

Vererbung, Polymorphie

Vererbung, Polymorphie Vererbung, Polymorphie Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 21.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung, Polymorphie 21.1.08

Mehr

Programmieren 2 Java Überblick

Programmieren 2 Java Überblick Programmieren 2 Java Überblick 1 Klassen und Objekte 2 Vererbung 4 Innere Klassen 5 Exceptions 6 Funktionsbibliothek 7 Datenstrukturen und Algorithmen 8 Ein-/Ausgabe 9 Graphische Benutzeroberflächen 10

Mehr

Programmierung Nachklausurtutorium

Programmierung Nachklausurtutorium Programmierung Nachklausurtutorium Laryssa Horn, Tim Engelhardt 20 März 2018 Klassen Wofür wir Klassen brauchen: Definieren ein Bauplan eines Objektes Bauplan enthält Attribute und Methoden Klasse Beispiel

Mehr

Aufgabenblatt 4. Aufgabe 3. Aufgabe 1. Aufgabe 2. Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen

Aufgabenblatt 4. Aufgabe 3. Aufgabe 1. Aufgabe 2. Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen Aufgabenblatt 4 Aufgabe 1 1. Erläutern Sie in eigenen Worten die Begriffe Datenstruktur, Datentyp und abstrakter Datentyp. Nutzen Sie das Beispiel

Mehr

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik Programmieren II Innere Klassen Heusch 10, 13.10 Ratz 5.2.1, 9.8 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Innere Klassen Bisher kennen wir nur Klassen, die entweder zusammen

Mehr

Informatik II Übung 06. Benjamin Hepp 5 April 2017

Informatik II Übung 06. Benjamin Hepp 5 April 2017 Informatik II Übung 06 Benjamin Hepp benjamin.hepp@inf.ethz.ch 5 April 2017 Nachbesprechung U5 5 April 2017 Informatik II - Übung 01 2 Nachbesprechung U5 1. Einfach verkettete Listen Keine Probleme 2.

Mehr

Kapitel 5: Interfaces

Kapitel 5: Interfaces Liste P: Programmieren mit Java WS 2001/2002 Prof. Dr. V. Turau FH Wiesbaden Kapitel 5: Interfaces Folie 82 : Einleitung Betrachtet man die Programmierleistung für ein Produkt über einen längeren Zeitraum,

Mehr

II.4.1 Unterklassen und Vererbung - 1 -

II.4.1 Unterklassen und Vererbung - 1 - n 1. Grundelemente der Programmierung n 2. Objekte, Klassen und Methoden n 3. Rekursion und dynamische Datenstrukturen n 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.4.1 Unterklassen und

Mehr

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5.

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5. Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 23.5.07 G. Bohlender (IANM UNI Karlsruhe) Vererbung 23.5.07 1 / 22 Übersicht 1

Mehr

Tag 8 Repetitorium Informatik (Java)

Tag 8 Repetitorium Informatik (Java) Tag 8 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen

Mehr

Beispiel: Zwischen der Oberklasse und der abgeleiteten Klasse besteht eine ist ein Beziehung. Eine abgeleitete Klasse stellt eine Spezialisierung der

Beispiel: Zwischen der Oberklasse und der abgeleiteten Klasse besteht eine ist ein Beziehung. Eine abgeleitete Klasse stellt eine Spezialisierung der Vererbung Vererbung ist ein Konzept der objektorientierten Programmierung,, die es ermöglicht neue Klassen von bereits vorhandenen Klassen abzuleiten. In einer abgeleiteten Klasse (subclass) muss nur spezifiziert

Mehr

4. Vererbung Die Klasse Object. Die Klasse Object

4. Vererbung Die Klasse Object. Die Klasse Object 4. Vererbung Die Klasse Object Die Klasse Object Alle Klassen ohne explizit deklarierte Superklasse haben die Klasse Object als Superklasse. Object gehört zum Paket java.lang. Object verfügt über einige

Mehr

Interfaces und Vererbung

Interfaces und Vererbung Interfaces und Vererbung Einführung in Java Folie 1 von 31 12. Mai 2011 Ivo Kronenberg Inhalt Interfaces Statische und dynamische Typen Visiblitätsmodifier Vererbung Überschreiben von Methoden Konstruktoren

Mehr

AuD-Tafelübung T-B5b

AuD-Tafelübung T-B5b 6. Übung Sichtbarkeiten, Rekursion, Javadoc Di, 29.11.2011 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit 3 Stack und Heap Stack Heap 4 Blatt 6 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit

Mehr

Interfaces und Generics

Interfaces und Generics Algorithmen und Datenstrukturen Wintersemester 2012/13 21. Vorlesung Interfaces und Generics Jan-Henrik Haunert Lehrstuhl für Informatik I Übersicht Liste und InsertionSort für Punkte für Objekte beliebiger

Mehr

14. Java Objektorientierung

14. Java Objektorientierung Objektorientierung: Verschiedene Aspekte Daten Typhierarchie Objekte 14. Java Objektorientierung Code Vererbung Unter- und Oberklassen Klassen, Vererbung, Kapselung Methoden überschreiben Unterklassen

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 13: Interfaces Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme 1. Teil: Interfaces Motivation Eigenschaften Besonderheiten Anonyme Klassen Lambda-Ausdrücke Praxis:

Mehr

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung Beispiele für Ausdrücke Der imperative Kern Deklarationen mit Initialisierung Variablendeklarationen int i = 10; int j = 15; Beispiele für Ausdrücke i+j i++ i & j i j [] [static]

Mehr

6. Globalübung (zu Übungsblatt 8)

6. Globalübung (zu Übungsblatt 8) 6. Globalübung (zu Übungsblatt 8) Inhalt: Klassenhierarchien Verdecken von Attributen Überschreiben von Methoden Codeanalyse Analyse von JAVA-Programmen Semestralklausur Klausurtermin: Mittwoch 11.01.2006

Mehr

Wie kann man es verhindern das Rad immer wieder erneut erfinden zu müssen?

Wie kann man es verhindern das Rad immer wieder erneut erfinden zu müssen? Generic Programming without Generics from JAVA5 Motivation Wie kann man es verhindern das Rad immer wieder erneut erfinden zu müssen? Ein Bespiel: sie haben bereits eine Klasse zur Multiplikation von Matrizen

Mehr

Theorie zu Übung 8 Implementierung in Java

Theorie zu Übung 8 Implementierung in Java Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Einführung in die Programmierung Teil 8: Interfaces Prof. Dr. Peer Kröger, Florian Richter, Michael Fromm Wintersemester 2018/2019 Übersicht 1. Einführung 2. Schnittstellen in Java 3. Exkurs: Marker-Interfaces

Mehr

EINFÜHRUNG IN DIE PROGRAMMIERUNG

EINFÜHRUNG IN DIE PROGRAMMIERUNG EINFÜHRUNG IN DIE PROGRAMMIERUNG OBJEKTORIENTIERTES PROGRAMMIEREN Tobias Witt 25.03.2014 09:00-10:30 Täglich Übungen zur Vertiefung Laptop hier nicht erforderlich Linux, OS X Freitag: http://hhu-fscs.de/linux-install-party/

Mehr

Probeklausur Java Einführung in die Informatik. Wintersemester 2016/2017

Probeklausur Java Einführung in die Informatik. Wintersemester 2016/2017 Fakultät IV NI & CV Java Einführung in die Informatik Wintersemester 2016/2017 Hinweis: Diese ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der schriftlichen Prüfung des Moduls Einführung

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 11: Vererbung Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil Einführung in die Vererbung Motivation Das Schlüsselwort extends Einführendes

Mehr

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie Anwendungsentwicklung mit Java Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie Vererbung (1) 2 Problem: Objekte mit gleichen Attributen/Methoden, aber nicht völlig identisch, z.b., LKW, PKW,

Mehr

II.4.1 Unterklassen und Vererbung - 1 -

II.4.1 Unterklassen und Vererbung - 1 - 1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.4.1 Unterklassen und Vererbung

Mehr

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 14.1.

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 14.1. Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 14.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung 14.1.08 1 / 11 Übersicht 1

Mehr

14. Java Objektorientierung. Klassen, Vererbung, Kapselung

14. Java Objektorientierung. Klassen, Vererbung, Kapselung 427 14. Java Objektorientierung Klassen, Vererbung, Kapselung Objektorientierung: Verschiedene Aspekte 428 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen

Mehr

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete. II.4.2 Abstrakte Klassen und Interfaces - 1 -

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete. II.4.2 Abstrakte Klassen und Interfaces - 1 - ! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete II.4.2 Abstrakte Klassen und Interfaces - 1 - Ähnliche Programmteile public class Bruchelement { Bruch wert;

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Objektorientierung in C++ (3) Aspekte der Vererbung (1) Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 546 Zuweisung bei Vererbung Dr. Frank Seifert Vorlesung

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 09: Vererbung Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil Einführung in die Vererbung Motivation Das Schlüsselwort extends Einführendes

Mehr

Erste Java-Programme (Java Wiederholung & Vererbung)

Erste Java-Programme (Java Wiederholung & Vererbung) Lehrstuhl Bioinformatik Konstantin Pelz Erste Java-Programme (Java Wiederholung & ) Tutorium Bioinformatik (WS 18/19) Konstantin: Konstantin.pelz@campus.lmu.de Homepage: https://bioinformatik-muenchen.com/studium/propaedeutikumprogrammierung-in-der-bioinformatik/

Mehr

Probleme ohne generische Typen

Probleme ohne generische Typen Generics seit Java1.5 SSJ Kapitel 15 Probleme ohne generische Typen Klassen, die mit Objekten verschiedenen Typs arbeiten können class List { Object[ ] data = ; void add(object x) { Object remove() { Probleme

Mehr

Java Einführung Vererbung und Polymorphie. Kapitel 13

Java Einführung Vererbung und Polymorphie. Kapitel 13 Java Einführung Vererbung und Polymorphie Kapitel 13 Inhalt Klassifikation (UML) Implementierung von Vererbungshierarchien Überschreiben von Methoden Polymorphismus: Up-Casting und Dynamisches Binden Schlüsselwort

Mehr

Abschnitt 14: Schnittstellen: Interfaces

Abschnitt 14: Schnittstellen: Interfaces Abschnitt 14: Schnittstellen: Interfaces 14. Schnittstellen: Interfaces 14.1 Die Idee der Schnittstellen 14.2 Schnittstellen in Java 14.3 Marker-Interfaces 14.4 Interfaces und Hilfsklassen 14 Schnittstellen:

Mehr

Methoden und Wrapperklassen

Methoden und Wrapperklassen Methoden und Wrapperklassen CoMa-Übung IV TU Berlin 06.11.2012 CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 06.11.2012 1 / 24 Themen der Übung 1 Methoden 2 Wrapper-Klassen CoMa-Übung IV (TU Berlin)

Mehr

14. Java Objektorientierung

14. Java Objektorientierung Objektorientierung: Verschiedene Aspekte Daten Typhierarchie Objekte 14. Java Objektorientierung Code Vererbung Unter- und Oberklassen Klassen, Vererbung, Kapselung Methoden überschreiben Unterklassen

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

Objektorientierung (OO)

Objektorientierung (OO) Objektorientierung (OO) Objekte haben Zustände (oder Eigenschaften, Attribute) und Verhalten Zustände: Objektvariablen (in Java auch fields) Verhalten (oder Aktionen): Methoden (methods, Funktionen) members

Mehr

II.4.5 Generische Datentypen - 1 -

II.4.5 Generische Datentypen - 1 - 1. Unterklassen und Vererbung 2. Abstrakte Klassen und Interfaces 3. Modularität und Pakete 4. Ausnahmen (Exceptions) 5. Generische Datentypen 6. Collections II.4.5 Generische Datentypen - 1 - Ähnliche

Mehr

II.4.4 Exceptions - 1 -

II.4.4 Exceptions - 1 - n 1. Unterklassen und Vererbung n 2. Abstrakte Klassen und Interfaces n 3. Modularität und Pakete n 4. Ausnahmen (Exceptions) n 5. Generische Datentypen n 6. Collections II.4.4 Exceptions - 1 - Ausnahmen

Mehr

Java I Vorlesung 6 Referenz-Datentypen

Java I Vorlesung 6 Referenz-Datentypen Java I Vorlesung 6 Referenz-Datentypen 7.6.2004 Referenzen this, super und null Typkonvertierung von Referenztypen Finale Methoden und Klassen Datentypen in Java In Java gibt es zwei Arten von Datentypen:

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java Bisherige Beobachtungen zu Objekten: werden in Klassen zusammengefasst besitzen Eigenschaften und Verhalten verbergen private Informationen werden geboren, leben und

Mehr

Probeklausur Java Einführung in die Informatik. Wintersemester 2017/2018

Probeklausur Java Einführung in die Informatik. Wintersemester 2017/2018 Fakultät IV NI & CV Java Einführung in die Informatik Wintersemester 2017/2018 Hinweis: Diese ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der schriftlichen Prüfung des Moduls Einführung

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Skript zur Vorlesung: Einführung in die Programmierung WiSe 2009 / 2010 Skript 2009 Christian Böhm, Peer Kröger, Arthur Zimek Prof. Dr. Christian Böhm Annahita Oswald Bianca Wackersreuther Ludwig-Maximilians-Universität

Mehr

Informatik II. Übungsstunde 6. Distributed Systems Group, ETH Zürich

Informatik II. Übungsstunde 6. Distributed Systems Group, ETH Zürich Informatik II Übungsstunde 6 simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Besprechung der Vorlesung Uebungsbezogene Themen: Statisches & Dynamisches Type Checking Zeit zum Programmieren...

Mehr