9. Kapitel GENERICS. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm
|
|
- Dominik Richter
- vor 7 Jahren
- Abrufe
Transkript
1 9. Kapitel GENERICS Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm
2 Übersicht 1 1. Programmstrukturierung mit Paketen (packages) 2. Vererbung 3. Abstrakte Klassen und Interfaces 4. Ausnahmebehandlung 5. Datenströme: die Java IO- Bibliothek 6. MulSthreading 7. CollecSons 8. Innere Klassen 9. Generics 10. ReflecSon
3 Lernziele des Kapitels 2 Verstehen warum man (in Java 5) Generics eingeführt hat. Kennenlernen des Generic- Konzepts. Verstehen, was generisch sein kann. Selbst generische Klassen und Methoden schreiben können.
4 Inhalt 3 1. Einführung / MoSvaSon 2. Generics (DefiniSon) 3. Generische Klassen Subtyping Wildcards 4. Generische Methoden 5. Anwendungsbeispiele
5 Beispiel: Einfacher Stack für bessmmte Objekte 5 Stack für String-Objekte Stack für Integer-Objekte Schlecht: 2 x quasi derselbe Code für dieselben Aufgaben. Frage: Kann man das mit unserem Wissen nicht besser machen? Wenn ja: Wie?
6 Beispiel: Einfacher Stack für alle Arten von Objekten 6 Laufzeitfehler
7 ADT Stack: Problem Typsicherheit 7 o Der ADT Stack ist prinzipiell offen für jeden Typ. o Man speichert Objekte vom allgemeinsten Typ Object. o Beim Lesen vom Stack (pop) werden diese allgemeinen Objekte auch wieder zurück geliefert. o Wenn man in einem Stack Integer- Objekte speichert, will man dort keine String- Objekte speichern doch mit einen allgemeinen Typ Object kann das nicht verhindert werden. o Abhilfe seit Java 5 : die Nutzung von Generics à bessere Typsicherheit, denn nur ganz spezielle Objekte kommen in die Datenstruktur. o Mit den Generics lässt sich bei der KonstrukSon des ADT Stack angeben, welche Objekte in den Stack aufgenommen werden dürfen. o Dann ist man auch sicher, welche Objekte man vom Stack zurück bekommt.
8 MoSvaSon 8 o Wie abstrahiere ich vom konkreten Typ eines Objekts? o Wie kann ich (typsichere) Containerklassen (z.b. einen ADT Stack) bauen, die jedes beliebige Objekt aufnehmen können? o Wie baue ich typsichere Frameworks? o Wie vermeide ich (unsichere) Casts und mache dadurch meinen Code typsicher?
9 9 Beispiel: Stack mit Generics
10 Beispiel: Stack mit Generics 10 Compilezeitfehler
11 Generische Typen Warum? 11 o Bei den ersten getypten Programmiersprachen (z.b. Pascal): o Programmierer musste dieselbe Datenstruktur für jeden Datentyp, der unterstützt wurde, definieren. Eine Liste von Zahlen, eine Liste von Zeichen und eine Liste von Datumsangaben wird (im Grunde) auf dieselbe Weise programmiert. Die Algorithmen zum Einfügen, Suchen und Löschen laufen stets gleich ab. Wünschenswert: die ImplemenSerung der Liste unabhängig von diesen Typen vorzunehmen. Erster Verbesserungsansatz in Java durch Vererbungsbeziehung Ziel nur teilweise erreicht à keine Unterstützung bezüglich der Typüberprüfungen zur Compilezeit.
12 Generische Typen in Java 12 o Ein generischer Typ à Erzeugung von Datentypen, die von den zu Grunde liegenden Typen abstrahieren. o CharakterisSsch für generischen Programmierung à die Algorithmen werden nicht für einen bessmmten Datentyp geschrieben. Sie stellen nur bessmmte Anforderungen an die Typen. o Generische Typen in der InformaSk: Datentypen mit der Möglichkeit zur Angabe von Typparametern.
13 Generische Programmierung Was ist das? 13 o In C++: Templates, in Java: Generics. o Der Begriff steht synonym für parametrisierte Typen. o Idee: Es werden zusätzliche Variablen für Typen, sogenannte Typ- Variablen eingeführt. o Diese Typ- Variablen repräsenseren zum Zeitpunkt der ImplemenSerung unbekannte Typen. o Erst bei der Verwendung der Klassen, Schninstellen und Methoden werden diese Typ- Variablen durch konkrete Typen ersetzt. o Damit kann typsichere Programmierung gewährleistet werden.
14 Generics wie funksonieren sie? 14 Formaler Typparameter Kein Cast mehr nötig! Fehlermeldung zur Compilezeit! The method push(string) in the type GenericSimpleStack<String> is not applicable for the arguments (int)
15 Generics: Eigenschaoen 15 o Generische Typen erlauben vom konkreten Typ zu abstrahieren. mit der Möglichkeit zur Angabe von Typparametern, d.h. Typ einer Variable, eines Parameters, eines Rückgabewertes etc. ist selber ein Variable (type variable). Klassen und Methoden haben, quasi als Schablone, einen zusätzlichen Typ- Parameter (type parameter), diese setzen dann die Typvariablen. Der Programmierer setzt die Typ- Parameter, so wie er es braucht und parametriert damit die Klassen bzw. Methoden. Klassen mit Typ- Parametern à generische Typen (generic types) bzw. generische Klassen (generic classes) Methoden mit Typ- Parametern à generische Methoden (generic methods) Typprüfung bereits zur Compilezeit à Typsicherheit. Verbessert Lesbarkeit und Robustheit der Programme. (Enqernte) Ähnlichkeiten zu Templates in C++ 15
16 Generics DefiniSon 16 DefiniSon von Typparametern: in spitzen Klammern hinter dem Klassen- oder Interfacenamen. Typparameter innerhalb der Klasse bzw. des Interfaces verwendbar wie ein Typ. Typparameter: keine elementaren Datentypen, nur Unterklassen von Object zulässig. Empfehlung für NamenskonvenSon Großbuchstabe E in Containerklassen Formaler Typparameter Verwendung des Typparameters in Methoden Verwendung des Typparameters bei Attributen
17 Generics Begriffe und Beispiele 17 Name Generischer Typ (generic type) Formaler Typ-Parameter (formal type parameter) Parametrisierter Typ (parametrized type) Aktueller Typ-Parameter (actual type parameter) Ungebundener Wildcard-Typ (unbounded wildcard type) Raw Type Gebundener Typ-Parameter (bounded type parameter) Rekursiv gebundener Typ-Parameter (recursive bounded type) Gebundener Wildcard-Typ (bounded wildcard type) Beispiel List<E> E List<String> String List<?> List <E extends Number> <E extends Comparable<E>> List<? extends Number> Generische Methode (generic method) static <E> List<E> aslist(e[] a) Type Token String.class
18 Generics Realisierung in Java 18 o Generics sind ein Compile- Zeit- Konstrukt, d.h. die Generics exisseren nur zur Compile- Zeit. o Die Typ- InformaSonen des generischen Typs werden vom Compiler enqernt (Typlöschung / type erasure). Typ- Parameter ist zur Laufzeit vom Typ Object. Typ- Parameter kann nicht in stasschen Variablen oder Methoden verwendet werden. Typ- Parameter kann nicht verwendet werden, um Objekte zu erzeugen. o Es gibt zur Laufzeit nur eine einzige Klasse pro generischem Typ (Raw type) sog. homogene Übersetzung. o In C++ wird für jede Ausprägung eines Templates der Code für eine Klasse bzw. FunkSon generiert und compiliert; es gibt also pro generischem Typ in C++ eine Klasse sog. heterogene Übersetzung.
19 Raw- Type einer generischen Klasse 19 Generische Klasse mit Typvariablen. Vom Compiler aus der generischen Klasse generierter sog. Raw- Type. Compilezeitkonstrukt Laufzeitkonstrukt
20 20 Typ- Variablen und parametrisierte Typen - KompaSbilität Gegeben: class C<E> { } class A { } class B extends A { } Dann geltenden folgende KompaSbilitätsbedingungen: C<A> # C<B> Vererbungsbeziehung kann nicht auf generische Typen übertragen werden. C<B> # C<A> C<Object> # C<A> C<Object> # C<B> C C<A> C C<B> Object E E # Object Erklärung: s.u. Der raw- Type ist mit jedem generischen Typ kompasbel Legende: kompatibel # nicht kompatibel
21 21 Parametrisierte Typen : parametrisierter Typ als aktueller Typ- Parameter Gegeben: class C<E> { } class D<T> { } Verwendung der Klasse C: C<D<A>> c = new C<D<A>>(); oder C<D<D<D<D<D<A>>>>>> c = new C<D<D<D<D<D<A>>>>>>();
22 22 Parametrisierte Typen : parametrisierter Typ als aktueller Typ Gegeben: class A { } class B<E> { } DefiniSon der Klasse C: class C<E> { B<E> b; void set(b<e> b) { this.b = b; } B<E> get() { return this.b; } } Verwendung der Klasse C: C<A> c = new C<A> (); c.set(new B<A> ()); B<A> b = c.get(); Formaler Typparameter Attribut-Typ ist eine Typ-Variable Parametrisierter Typ
23 23 Typ- Variablen mit Einschränkungen: gebundender Parametertyp Die Typ- Variable E der Klasse ist eingeschränkt auf CA- kompasble Typen. Vom Compiler generierter Raw-Type.
24 Sinn von Einschränkungen 24 o Einschränkung von Typen ist ein spezifischer Kontrakt: Es wird garansert, dass der aktuelle Typ- Parameter einer solchen Klasse kompasbel zu der definierten Einschränkung ist. Über eine Referenz vom Typ der Typ- Variablen können typsicher alle für den einschränkenden Typ definierten Methoden aufgerufen werden. Ohne Einschränkung auf CA könnte man auf eine E- Referenz nur die Methoden der Klasse Object aufrufen. Methode m der Klasse CA kann aufgerufen werden.
25 Generische Klassen und Vererbung 25 o Generische Klassen können Subklassen haben. o Die Subklasse ist Entweder selbst wieder generisch, oder Die Subklasse legt den Typ- Parameter fest und ist damit nicht generisch.
26 26 Generische Klassen und Vererbung Beispiel Generische Subklasse Klasse B ist selbst generisch.
27 27 Generische Klassen und Vererbung Beispiel Nicht- Generische Subklasse Klasse C ist nicht generisch legt den Typ von A fest (bindet den formalen Parameter E an Double)
28 Generics und Subtyping? 28 Subtyping nicht erlaubt!!! Fehler?! Ist eine Liste von Strings auch eine Liste von Objekten?... sonst ginge das: Versuch einem String ein Objekt zuzuweisen!
29 Invarianz 29 o Generics sind invariant Die Ableitungsbeziehung zwischen Typargumenten überträgt sich nicht auf generische Klassen à Generische Typen von Subtypen sind selber keine Subtypen (invariante Typen, keine Kovarianz). Es gibt daher auch keine Polymorphie zwischen verschiedenen Ausprägungen desselben generischen Typs.
30 30 Beispiel ohne Generics Typsichere Behandlung von verschiedenen (generischen) CollecSons Naheliegender Ansatz mit Generics Nur Collections, die mit Object parametrisiert sind, können an die Methode übergeben werden! for-each- Schleife Hoffnung: durch die Definition des Methodenparameters als Collection<Object> wird auch Collection<String> akzeptiert. Realität: Das ist aber nicht so. Beide Typen stehen in keinerlei Beziehung zueinander. Generics sind invariant Sie sind zwar durch Parameterisierung aus demselben generischen Typ entstanden, aber sie sind in keiner Weise kompatibel zueinander.
31 Wildcards 31 o o o o o o Wildcards <?> à bewusstes Vergessen der TypinformaSonen bzw. zeigen an, dass jede beliebige Ausprägung eines generischen Typs ( = alle Referenztypen ) möglich ist. <?> steht für unbekannter Typ nicht für Objekt (sonst gälten ja die Einschränkungen von oben). Damit ist es möglich verschiedene Unterklassen zusammenzuführen. <?> ist die Kurzform von <? extends Object> Bound Wildcards <? extends E> bzw. <? super E> stellen sicher, dass nicht jede beliebige Ausprägung des generischen Typs sondern nur bessmmte möglich sind. Verwendung von Wildcards: Nur bei der DeklaraSon von Parametern und Variablen. Bei der Objekterzeugung und der DeklaraSon von generischen Typen können sie nicht verwendet werden. Es gibt also keine Objekte eines Wildcard- Typs.
32 Wildcards: Beispiel 1 32 Box <?> bo3 = new Box <?>(); Bei der Erzeugung muss der aktuelle Typparameter angegeben werden, er darf nicht unbekannt bleiben. Der parametrisiertetyp von bo1 ist Number. Der parametrisiertetyp Typ von bo2 ist unbekannt.
33 Wildcards: Beispiel 2 33 Neuer Ansatz mit Generics Collection of unknown Wildcard Akzeptiert alle Arten von Collections!
34 Gebundene / Upper Bound Wildcards 34 Auf einem Typ, der mit einem nach oben beschränkten Wildcard parametrisiert ist, dürfen keine Methoden aufgerufen werden, die den Typparameter als Methodenparameter haben. Nur Subtypen von Number sind als unbekannter generischer Typ zulässig! Die Nutzung der Box<Number> ist eingeschränkt: setvalue() funktioniert nur über die konkrete Box<Integer> (also bi), aber nicht über die allgemeine Box<Number>. Der Zugriff ist unproblematisch. Lösung à später
35 Gebundene Wildcards bei Parametern 35 Wildcard für alle Klassen die Unterklasse von Shape sind
36 Gebundene / Lower Bound Wildcards 36 Nur Supertypen von A1 sind als unbekannter generischer Typ zulässig!
37 Mischen von upper und lower bound Wildcards 37 Mit der upper bound Wildcard (dem maximalen Typ) funktioniert das Lesen der Daten, aber nicht das Hinzufügen. Lesen von Daten aus generischem Typ è upper bound Wildcards Nur Supertypen von Number sind als unbekannter generischer Typ zulässig! Mit der lower bound Wildcard (dem minimalen Typ) funktioniert nun das Hinzufügen aber nicht mehr das Lesen der Daten. Hinzufügen von Objekten zu generischem Typ è lower bound Wildcards
38 38 Zusammenfassendes Beispiel Machen wir am Rechner.
39 Generische Methoden 39 Eine Klasse kann ganz normal ohne Generics deklariert werden, aber mit Methoden, die die Typen generisch vorschreiben. o Sowohl Klassenmethoden als auch Objektmethoden können als generische Methoden deklariert werden, z.b. static <E> Stack<E> combine (Stack<E> p). Angabe von <E> beim Klassennamen entfällt und verschiebt sich auf die Deklaration der Methode. Rückgabetyp: Objekt der generischen Klasse Stack<E> Parametertyp: Objekt der generischen Klasse Stack<E> o o o Im Gegensatz zu Klassen muss der Verwender den Typ- Parameter nicht explizit setzen, der Compiler leitet ihn aus den Typen des Aufrufs ab (type inference). In seltenen Fällen muss man den Typ für die Methode explizit angeben. Interessant ist dies für USlity- Klassen, die nur stassche FunkSonen anbieten, aber selbst nicht als Objekt vorliegen.
40 Generische Methoden: Beispiel 1 40 class MyStack<E> implements Stack<E> 2 Integer Stacks werden zu einem Stack zusammengefasst.
41 Generische Methoden: Beispiel 2 41 Fehler zur Compilezeit! Typparameter Verwendung des Typparameters
42 Generische Methoden mit gebundenen Parametern 42 o Typ- Parameter können - analog zu Wildcards auf bessmmte Klassen beschränkt werden. o <T extends C> - schränkt T auf C und Subklassen von C ein. o <T super C> - schränkt T auf C und Superklassen von C ein.
43 Generische Methoden: Beispiel 3 43 T muss von Klasse A abgeleitet sein T muss von den Interfaces I1 und I2 abgeleitet sein T muss von Klasse A und den Interfaces I1 und I2 abgeleitet sein
44 44 Generics mit mehreren Typparametern
45 Generics und Arrays 45 o Generics und Arrays unterscheiden sich grundsätzlich und harmonieren im allgemeinen schlecht. o Arrays sind kovariant (covariant) o Generics sind invariant (invariant) o Arrays prüfen ihren Typ zur Laufzeit (reified) o Generics sind ein Compilezeitkonstrukt, prüfen ihren Typ deshalb zur Compilezeit (type erasure). o Die Typlöschung ist der Grund dafür, das Arrays nicht so umgesetzt werden können, wie man es sich naiv vorstellt. o Es ist nicht möglich ein Array zu erstellen aus einem generischen Typ (List<E>[]) einem parametrierten Typ (List<String>[]) einem Typ- Parameter (E[])
46 Kovarianz, Kontravarianz, Invarianz 46 Vererbung vom Typ des Methodenparameters bzw. Rückgabewerts Typhierarchie des Methodenparameters ist entgegen der Vererbungshierarchie von ClassA und ClassB Typhierarchie des Rückgabewertes der Methode ist mit der Vererbungshierarchie von ClassA und ClassB Typhierachie des Methodenparameters bleibt unverändert Quelle: Wikipedia
47 RunSme- Klassen 47 o Was gibt das folgende Programm aus? Gibt true aus, weil alle Instanzen einer generischen Klasse dieselbe Runtime-Klasse haben
48 48 Anwendungsbeispiel: Queue
49 49 Anwendungsbeispiel: List
50 50 Anwendungsbeispiel: Node
51 Einsatz von Generics 51 o Allgemein Generics sind eine Form von Polymorphie. Diese ist immer dann sinnvoll, wenn der Code wiederverwendbar sein soll. o Generics kontra Polymorphie durch Subtyping: Generics für die Typsicherheit. Vorteil gegenüber Casts durch frühere Fehlererkennung. o Der Entwickler wird nicht gezwungen Generics zu verwenden. o Eine unchecked Warnung weist darauf hin, dass die Typsicherheit nicht gewährleistet ist.
52 Zusammenfassung 52 o Generics erlauben typsicher zu programmieren Typprüfungen erfolgen bereits zur Compilezeit nicht erst zur Laufzeit. D.h. Fehler treten an den Stellen auf, wo sie verursacht werden. Generics helfen dabei Programme robuster und weniger fehleranfällig zu machen. n Das Wegfallen von Casts macht den Code übersichtlicher. n Bedingungen lassen sich besser und einfacher ausdrücken. o Generische Klassen können leicht wiederverwendet werden. o In Bezug auf Arrays ist das Konzept noch nicht ausgereio.
53 Generics Erweiterungen in Java 7 53 Mit Java 7 ist die Typ- Inferenz für Generics deutlich verbessert worden: o In den meisten SituaSonen muss man den Typ- Parameter nur noch bei der DeklaraSon setzen. o Bei der Objekterzeugung kann die Angabe des Typ- Parameters durch den diamond <> ersetzt werden. Beispiele: List<String> list = new ArrayList<>();! Map<Integer, String> map = new HashMap<>();! Set<?> set = new HashSet<>();!
54 Weitere Infos zu Generics 54 o hnp://java.sun.com/j2se/1.5/pdf/generics- tutorial.pdf o hnp://angelikalanger.com/genericsfaq/javagenericsfaq.pdf
JAVA 5 Generics. Proseminar Programmiersprachen Thema Java 5 Generics 1
JAVA 5 Generics Thema Java 5 Generics 1 Inhalt 1. Die Programmiersprache Java 2. Simple Generics 3. Das Beispielprogramm 4. Tieferer Einstieg in Generics 5. Arrays 6. Kritische Betrachtung von Generics
MehrEinstieg 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
MehrNeuere 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
MehrJava I Vorlesung Generics und Packages
Java I Vorlesung 9 Generics und Packages 21.6.2004 Generics Packages Qualifizierte Namen Mehr zu Zugriffsklassen Generics (Java 1.5) Die Klassen im Java Collections Framework sind mit dem Typ ihrer Elemente
MehrProgrammierkurs Java
Programmierkurs Java Java Generics und Java API (1/2) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck https://www.itm.uni-luebeck.de/people/fischer Datenstrukturen In vielen Sprachen
MehrJava Generics & Collections
Java Praktikum Effizientes Programmieren (Sommersemester 2015) Dennis Reuling Agenda 1 2 3 1 / 30 Praktikum Effizientes Programmieren (Sommersemester 2015) Java Subtyping Teil 1 2 / 30 Praktikum Effizientes
MehrEinfache Liste: Ein Stapel (Stack) Ansatz. Schaubild. Vorlesung 1. Handout S. 2. Die einfachste Form einer Liste ist ein Stapel (stack).
Programmieren I Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 / 64 2 / 64 Motivation Hauptteil dieser Vorlesung sind die so genannten. Zur Motivation (und als Vorbereitung der Datencontainer-Klassen
MehrProbleme 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
MehrObjektorientierte 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
MehrKapitel 8. Generische Klassen
Kapitel 8 Generische Klassen Ziel: Zusammensetzen von Software-Bausteinen Oft probiert, nie erreicht! sprachliche Mittel fehlten In C++, ADA, Eiffel, Java: Klassen, die mit anderen Klassen parametrisiert
MehrKapitel 8. Generische Klassen
Kapitel 8 Generische Klassen Ziel: Zusammensetzen von Software-Bausteinen Oft probiert, nie erreicht! sprachliche Mittel fehlten In C++, ADA, Eiffel, Java: Klassen, die mit anderen Klassen parametrisiert
MehrEinleitung Typsystem Typisierung Zusammenfassung Literatur. Typisierung. Effiziente Programmierung. Thomas Schnieders
Typisierung Effiziente Programmierung Thomas Schnieders Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität Hamburg 2018-04-26 Thomas Schnieders Typisierung 1
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 14: Generics Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda Generische Klassen (Generics) Motivation Java Typ-Prüfung Warum also Generics? Generische
MehrJava Vererbung. Inhalt
Java Vererbung Inhalt 1 Zielsetzung... 2 1.1 Bewertung... 2 2 Grundlagen der Vererbung... 2 2.1 Super und Subklassen... 2 3 Überladen von Methoden... 4 3.1 Unterschiedliche Parameter... 4 3.2 Gleiche Parameter
MehrGrundlagen der Informatik 0
Technische Universität Darmstadt 01.07.2013 Grundlagen der Informatik 0 Vorlesung 0 Java ist eine Programmiersprache Ilkay Baytekin Douglas Crockford http://media.smashingmagazine.com/wp-content/uploads/2012/04/doug-crockford-image.jpg
MehrJava für Bauingenieure
1 JAVA für Bauingenieure Alexander Karakas SS 2008 Objektorientierte Programmierung 30.04.2008, CIP Pool Objektorientierte Programmierung Übersicht 2 Klasse und Objekt Polymorphismus und Vererbung Klassen
MehrJava 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
Mehrpublic interface Stack<E> { public void push(e e); public E pop();
ADS Zusammenfassung René Bernhardsgrütter 02.04.2012 1 Generics Gewähren Typsicherheit und können für verschiedene Datentypen ohne Casts verwendet werden. Beim Erstellen der Klasse werden Platzhalter für
MehrProgrammieren 2 16 Java Collections und Generizität
Programmieren 2 16 Java Collections und Generizität Bachelor Medieninformatik Wintersemester 2015 Dipl.-Inform. Ilse Schmiedecke schmiedecke@beuth-hochschule.de 1 Faulheit professionell: Fertige Datenbehälter
MehrProgrammieren 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
MehrPhilipp Güttler Progwerkstatt. Enums, Interfaces und Generics
Philipp Güttler 18.11.2008 Progwerkstatt Enums, Interfaces und Generics Seite 2 Enums Enum Typen Definition komplexer Datentyp, der festen Menge von Konstanten enthält Information der Reihenfolge der Konstanten
MehrAlgorithmen 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
MehrTeil V. Generics und Kollektionen in Java
Teil V Generics und Überblick 1 Parametrisierbare Datenstrukturen in Java 2 Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 5 1 Parametrisierbare Datenstrukturen in Java Motivation für
MehrII.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
MehrNeben 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
MehrVorlesung Inf-B
Vorlesung Inf-B stehn@mi.fu-berlin.de Quelle Diese Folien basieren auf dem Java-Tutorial Generics von Gilad Bracha http://java.sun.com/docs/books/tutorial/extra/generics/ 2 Motivierendes Beispiel List
MehrProgrammieren 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
MehrAlgorithmen und Datenstrukturen II
Algorithmen und Datenstrukturen II Bioinformatics Resource Facility Center for Biotechnology Vorlesung Sommer 2011 Was heißt generic? In Java: Abstraktion über Typen Pons Wörterbuch - www.pons.de Einsatz
MehrFamilienpolymorphismus
Graph mit 22. Januar 2006 Graph mit Einleitung Familien Traditioneller Polymorphismus Implementation in Java Implementation in Java mit Generics Graph mit gbeta Implementation in gbeta Datenstruktur, Graph
MehrProgrammieren in Java
Generische Datentypen 2 Wiederholung: Fehlerbehandlung durch Exceptions Die Ausführung einer Methode kann jederzeit durch das Werfen einer Exception-Instanz beendet werden Methoden, die durch eine Exception
MehrAlgorithmen 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
MehrProblem: Was ist, wenn der Stapel voll ist? Idee: Erzeuge dynamisch ein grösseres Array und kopiere um. Dynamische Anpassung der Größe
Maximale Größe?! Problem: Was ist, wenn der Stapel voll ist? Idee: Erzeuge dynamisch ein grösseres Array und kopiere um Dynamische Anpassung der Größe Praktische Informatik I, HWS 2009, Kapitel 10 Seite
MehrProgrammiermethodik 1. Klausur
Programmiermethodik 1. Klausur 27. 6. 2013 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 21 2 20 3 19 4 19 5 21 6 20 Gesamt 120 1 Seite 2 von 18 Aufgabe 1) Objekt-Orientierung und Vererbung
MehrRepetitorium Informatik (Java)
Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen
MehrWiederholung aus SWE2
Wiederholung aus SWE2 Innere Klassen Diverse neue Sprachfeatures bei Java 1.5 Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1 Inhalt Innere Klassen Diverse neue Sprachfeatures bei Java 1.5 Pratikum
MehrGebundene Typparameter
Gebundene Typparameter interface StringHashable { String hashcode(); class StringHashMap { public void put (Key k, Value v) { String hash = k.hashcode();...... Objektorientierte
MehrInstitut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen
MehrInterfaces 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
MehrGenerische Datenstrukturen
Generische Datenstrukturen Prof. Dr. rer. nat. habil. Uwe Aßmann Lehrstuhl Softwaretechnologie Fakultät für Informatik TU Dresden Softwaretechnologie, Prof. Uwe Aßmann 1 2 Trends in der Softwareentwicklung
MehrObjektorientierte Programmierung. Kapitel 12: Interfaces
12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/
Mehr4. Vererbung. Idee der Vererbung. Wir wollen ein Verwaltungsprogramm für CDs und Videos entwickeln. Wir stellen uns dazu folgende Klassen vor:
4. Vererbung Grundlagen der Vererbung 4. Vererbung 4. Vererbung Grundlagen der Vererbung Idee der Vererbung Wir wollen ein Verwaltungsprogramm für CDs und Videos entwickeln. Wir stellen uns dazu folgende
Mehr5.14 Generics. Xiaoyi Jiang Informatik I Grundlagen der Programmierung
Motivation für Generics: Containertypen speichern eine Anzahl von Elementen anderer Typen Wie definiert man die Containerklasse ArrayList? In der Definition könnte man als Elementtyp Object angeben maximale
MehrKapitel 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
MehrTU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.
TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Übung zur Vorlesung Einführung in die Informatik 2 für Ingenieure (MSE) Alexander van Renen (renen@in.tum.de)
MehrFH 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
Mehr3. Ü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
MehrADT: Java Collections und ArrayList
ADT: Java Collections und ArrayList Überblick der Klassen Object File Collections Map List Set ArrayList LinkedList SortedSet HashSet SortedSet Methode ArrayList Klasse I Beschreibung void add(int position,
Mehr12 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,
MehrEinführung in die Programmiersprache Java II
Einführung in die Programmiersprache Java II ??????????? UML OOP "Object oriented programming is bad" - professional retard 90s... UML Entwicklungsziele verschiedenen existierenden objektorienten Modellierungsmethoden
MehrJavakurs zu Informatik I. Henning Heitkötter
Javakurs zu Informatik I Arrays vergleichen Implementieren Sie folgende Methode, die prüft, ob die Elemente der beiden Arrays an jeder Position übereinstimmen: public static boolean identisch(int[] a,
MehrSchein-/Bachelorklausur Teil 2 am Zulassung: Mindestens 14 Punkte in Teilklausur 1 und 50% der Übungspunkte aus dem 2. Übungsblock.
Schein-/Bachelorklausur Teil 2 am 13.02.2007 Zulassung: Mindestens 14 Punkte in Teilklausur 1 und 50% der Übungspunkte aus dem 2. Übungsblock. Alle Studiengänge außer Bachelor melden sich über die Lehrstuhlwebseite
MehrType Erasure in Java 5. Helmi Jouini Institut für Theoretische Informatik Universität Karlsruhe
Type Erasure in Java 5 Helmi Jouini Institut für Theoretische Informatik Universität Karlsruhe Warum Generics? Containerklassen in Java 1.4 sind generisch nutzbar aber typunsicher. Public class LinkedList
MehrTafelü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
Mehr12) Generische Datenstrukturen
12) Generische Datenstrukturen Prof. Dr. rer. nat. habil. Uwe Aßmann Lehrstuhl Softwaretechnologie Fakultät für Informatik TU Dresden Version 09-0.2, 24.11.08 Softwaretechnologie, Prof. Uwe Aßmann 1 mpfohlene
Mehr1 Polymorphie (Vielgestaltigkeit)
1 Polymorphie (Vielgestaltigkeit) Problem: Unsere Datenstrukturen List, Stack und Queue können einzig und allein int-werte aufnehmen. Wollen wir String-Objekte, andere Arten von Zahlen oder andere Objekttypen
Mehr13. Generics. Prof. Dr. Harald Gall. Institut für Informatik Universität Zürich.
13. Generics Prof. Dr. Harald Gall Institut für Informatik Universität Zürich http://seal.ifi.uzh.ch Lernziele! Wie kann man mehr Flexibilität hinsichtlich der Typen erreichen?! Wie kann man Typen als
Mehr13. Generics. Lernziele. Motivation. Prof. Dr. Harald Gall. Institut für Informatik Universität Zürich.
13. Generics Prof. Dr. Harald Gall Institut für Informatik Universität Zürich http://seal.ifi.uzh.ch Lernziele! Wie kann man mehr Flexibilität hinsichtlich der Typen erreichen?! Wie kann man Typen als
MehrJavakurs 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
MehrDas Ersetzbarkeitsprinzip
Das Ersetzbarkeitsprinzip U ist Untertyp von T, wenn eine Instanz von U überall verwendbar ist, wo eine Instanz von T erwartet wird Dieses Ersetzbarkeitsprinzip benötigt man für den Aufruf einer Routine
MehrProgrammieren 1 09 Vererbung und Polymorphie
Programmieren 1 09 Vererbung und Polymorphie Bachelor Medieninformatik Sommersemester 2015 Dipl.-Inform. Ilse Schmiedecke schmiedecke@beuth-hochschule.de 1 I. VERERBUNG 2 2 Vererbung Von Interfaces übernehmen
MehrDurch die Teil-von-Beziehung soll ausgedrückt werden, dass ein Objekt A als (physikalischer) Teil eines Objekts B angesehen wird. Insbesondere kann ei
Lösungsvorschläge zur Klausur zum Kurs 1618 Sommersemester 2001 am 22.9.2001 Aufgabe 1 a) Benutzungsbeziehung: class Kennzeichen class Fahrzeug boolean gueltigeskennzeichen (Kennzeichen kz) Objekte der
Mehr3 Objektorientierte Konzepte in Java
3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine
Mehr1 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,
MehrVererbung I. Kfz Eigenschaften und Methoden der Klasse Kfz Lkw. Pkw. Eigenschaften und Methoden der Klasse Kfz
Einführung in C++ Vererbung I Durch Vererbung können aus bereits bestehenden Klassen neue Klassen konstruiert werden. Die neue abgeleitete Klasse erbt dabei die Daten und Methoden der sog. Basisklasse.
MehrA(T1) A(T2) A(T1) A(T2)
Kovarianz und Kontravarianz in Java Abstract In diesem Artikel werden die Java-Regeln für Kovarianz und Kontravarianz zusammengefasst. Hierzu wird Typkompatibilität definiert und die Fälle untersucht,
MehrGrundzüge der Programmierung. Wiederverwendung VERERBUNG
Grundzüge der Programmierung Wiederverwendung VERERBUNG Inhalt dieser Einheit Syntax: Vererbung in Java Superklassen - Subklassen Konstruktorenaufruf in Subklassen super, abstract und final 2 Code-Reuse
MehrProgrammieren 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
MehrKonzepte der Programmiersprachen
Konzepte der Programmiersprachen Sommersemester 2010 4. Übungsblatt Besprechung am 9. Juli 2010 http://www.iste.uni-stuttgart.de/ps/lehre/ss2010/v_konzepte/ Aufgabe 4.1: Klassen in C ++ Das folgende C
MehrJavakurs 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
MehrPhilipp Güttler Progwerkstatt Letzte Änderung: Enums, Interfaces, Generics und Threads
Philipp Güttler 18.11.2008 Progwerkstatt Letzte Änderung: 09.12.2009 Enums, Interfaces, Generics und Threads Seite 2 Enums Enums, Interfaces und Generics 17.11.2008 Enum Typen komplexer Datentyp, der festen
MehrDynamische Typinformation A01 OOP. Dynamische Typinformation
2013-11-13 Dynamische Typinformation 1 185.A01 OOP Dynamische Typinformation 2013-11-13 Dynamische Typinformation 2 OOP Dynamische Typabfragen Abfrage der Klasse eines Objects: Class y = x.getclass();
MehrPolymorphie/Späte Bindung Abstrakte Klassen Interfaces. Polymorphie/Späte Bindung Abstrakte Klassen Interfaces
Programmieren I Martin Schultheiß Hochschule Darmstadt Wintersemester 2010/2011 1 / 20 Polymorphie/Späte Bindung Abstrakte Klassen Interfaces 2 / 20 Definition: Polymorphie Der Begriff Polymorphie (manchmal
MehrEinstieg 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
Mehr7. 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
MehrWeitere 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
Mehr14 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
MehrProf. Dr. Wolfgang Schramm. Vorlesung. Techniken der Programmentwicklung. Exkurs: Anonyme Klassen
Prof. Dr. Wolfgang Schramm Vorlesung Exkurs: Anonyme Klassen Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Vorlesung Exkurs: Anonyme Klassen Techniken der Programmentwicklung Anonyme Klassen
MehrAlgorithmen und Programmierung II
Algorithmen und Programmierung II Vererbung Prof. Dr. Margarita Esponda SS 2012 1 Imperative Grundbestandteile Parameterübergabe String-Klasse Array-Klasse Konzepte objektorientierter Programmierung Vererbung
MehrII.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
Mehr14 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.
MehrObjektorientierte 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/
Mehr13 Polymorphie. Problem:
13 Polymorphie Problem: Unsere Datenstrukturen List, Stack und Queue können einzig und allein int-werte aufnehmen. Wollen wir String-Objekte oder andere Arten von Zahlen ablegen, müssen wir die jeweilige
MehrEinstieg 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
MehrKapitel 8. Programmierkurs. Methoden. 8.1 Methoden
Kapitel 8 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Methoden Überladen von Methoden Der this-zeiger Konstruktoren Vererbung WS 07/08
MehrFortgeschrittene Programmierung
Skript zur Vorlesung Fortgeschrittene Programmierung SS 2014 Prof. Dr. Michael Hanus Priv.Doz. Dr. Frank Huch Arbeitsgruppe Programmiersprachen und Übersetzerkonstruktion Institut für Informatik Christian-Albrechts-Universität
MehrFragen zur OOP in Java
- 1 - Inhalt Was bedeutet OOP?... 2 Was versteht man unter einer Klasse?... 2 Wie nennt man die Mitglieder einer Klasse?... 2 Wie erzeugt man Objekte?... 2 Wie greife ich auf Member einer Klasse zu?...
MehrObjektorientierte 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
MehrTh. Letschert OOP 2 1. Vererbung I : Subklasse und Subtyp
Th. Letschert OOP 2 1. Vererbung I : Subklasse und Subtyp Th. Letschert, FH Giessen-Friedberg Th. Letschert OOP 2 Vererbung (Inhertitance) I Wiederverwendung von Klassendefinitionen Erweiterung von Objekt-Konstruktionen
MehrTag 4 Repetitorium Informatik (Java)
Tag 4 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Arrays (Reihungen)
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1 Kapitel 11 Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 2 Ziele Implementierungen für
Mehr1 Klassen und Objekte
1 Klassen und Objekte Datentyp - Spezifikation des Typs von Datenobjekten Datenstruktur - logische Ordnung von Elementen eines Datentyps - zur (effizienten) Speicherung, Verwaltung, Zugriff - auf die Elemente
MehrJavakurs 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:
MehrProgrammieren I. Kapitel 13. Listen
Programmieren I Kapitel 13. Listen Kapitel 13: Listen Ziel: eigene Datenstrukturen erstellen können und eine wichtige vordefinierte Datenstruktur( familie) kennenlernen zusammengehörige Elemente zusammenfassen
Mehr1. Abstrakte Klassen
1. Abstrakte Klassen Lernziele 1. Abstrakte Klassen Lernziele: Das Konzept abstrakter Klassen und abstrakter Methoden kennen und verstehen, in der Lage sein, abstrakte Klassen und Methoden in Java zu formulieren,
MehrVererbung. CoMa-Übung XI TU Berlin. CoMa-Übung XI (TU Berlin) Vererbung / 47
Vererbung CoMa-Übung XI TU Berlin 16.01.2013 CoMa-Übung XI (TU Berlin) Vererbung 16.01.2013 1 / 47 Themen der Übung Themen heute Evaluation Rücksprachen IDEs Eclipse & Netbeans Packages, innere Klassen
MehrKapitel 6. Vererbung
1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben
MehrAbstrakte Datentypen und Java
Abstrakte Datentypen und Java ƒ hehueolfn ƒ 5HDOLVLHUXQJYRQ$'7 NRQNUHWH'DWHQW\SHQ %HLVSLHO5DWLRQDOH=DKO ƒ 3DUDPHWULVLHUWH'DWHQW\SHQ %HLVSLHO)HOG6RUWLHUWHV)HOG ƒ 6FKQLWWVWHOOHQNRQ]HSW ƒ :LFKWLJH'DWHQW\SHQLQ-DYD
MehrEinstieg 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
MehrHeute. 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