Generisches Programmieren. Generisches Programmieren
|
|
|
- Ina Meissner
- vor 7 Jahren
- Abrufe
Transkript
1 Generisches Programmieren Generisches Programmieren Uli Dormann 1
2 Inhaltsverzeichnis Motivation Ansatz Sprachen mit generischer Programmierung Generische Klassen Namenskonvention Prüfung Typsicherheit Generische Klassen, Interfaces Schachteln Der Diamantoperator Typebounds Wildcard Vererbung Übersetzen generischer Klassen Type Erasure Generics und Arrays Brückenmethoden Grenzen generischer Typen Polymorphie Abschluss 2
3 Motivation (1) Beispiel Tasche Für jede Möglichkeit eine eigene Klasse String Integer public class Pocket { private String value; public Pocket() {} public Pocket( String value ) { this.value = value; } public void set( String value ) { this.value = value; } public String get() { return value; } public boolean isempty() { return value == null; } public void empty() { value = null; } public class Pocket { private int value; public Pocket() {} public Pocket( int value ) { this.value = value; } public void set( int value ) { this.value = value; } public int get() { return value; } public boolean isempty() { return value == null; } public void empty() { value = null; } 3
4 Motivation (2) Beispiel: Tasche Objekt public class Pocket { private Object value; public Pocket() {} public Pocket( Object value ) { this.value = value; } public void set( Object value ) { this.value = value; } public Object get() { return value; } public boolean isempty() { return value == null; } public void empty() { value = null; } } Unpraktisch und nicht Typsicher! 4
5 Ansatz Generischer Algorithmus Mechanismus zur Verwendung solcher Algorithmen In Java Generics mit Version 5 Generics sind Objekte, keine primitiven Datentypen. Primitive Typen: boolean, char, byte, short, int, float, double AutoBoxing : Primitiver Datentyp Wrapper Objekt 5
6 Sprachen mit generischer Programmierung Java NET-Sprachen ADA Delphi HaXe ABAP Eiffel ML Python C# C++ Makros in C (wenn auch nicht dafür vorgesehen) 6
7 Generische Klassen (1) Typparameter wird durch Typvariable ersetzt public class Pocket<T> { private T value; public Pocket() {} public Pocket( T value ) { this.value = value; } public void set( T value ) { this.value = value; } public T get() { return value; } public boolean isempty() { return value!= null; } public void empty() { value = null; } } 7
8 Generische Klassen (2) Typvariablen (fast) wie ein normaler Typ Mehrere Typvariablen möglich Beispiel: public class Pocket<T> Pocket<Integer> intpocket = new Pocket<Integer>(); Pocket<String> stringpocket = new Pocket<String>(); Begriff Generische Typen Typvariable Parametrisierter Typ Typparameter Originaltyp Beispiel Pocket<T> T Pocket<Long> Long Pocket 8
9 Namenskonvention Einzelne Großbuchstaben z.b. E wie Element Keine Wörter Der Quellcode wird öfter gelesen als geschrieben, deswegen leserlich halten. 9
10 Prüfung Typsicherheit Zwei Instanzen, die die Typen prüfen - JVM - Compiler Compiler braucht mehr Informationen 10
11 Generische Klassen, Interfaces class Pocket <T> interface XXX<T> 11
12 Schachteln Typvariable T beschränkt sich nicht auf Klassen- oder Schnittstellentypen, sondern kann auch wieder ein generischer Typ sein. Pocket<Pocket<String>> pocketofpockets = new Pocket<Pocket<String>>(); pocketofpockets.set( new Pocket<String>() ); pocketofpockets.get().set( "Inner Pocket<String>" ); System.out.println( pocketofpockets.get().get() ); // Inner Pocket<String> Ohne Generics sähen alle Taschen gleich aus. 12
13 Der Diamantoperator Ab Java 7 wird aus: Pocket<Pocket<String>> pocketofpockets = new Pocket<Pocket<String>>(); einfach: Pocket<Pocket<String>> pocketofpockets = new Pocket<>(); 13
14 Typebounds bedeutet: Kompatibel zu Klassen und Interfaces möglich Kann mehrere geben class Pocket<T extends A & B>{... Legt Mindestanforderung fest Kann die Typvariable enthalten class Pocket<T extends Comparable<T>> {... 14
15 Wildcard Bewusstes vergessen der Typinformation (Joker ;) Pocket<Number> b; Pocket<Integer> bi = new Pocket <Integer>(); Pocket<Double> bd = new Pocket <Double>(); b = bi; // Nein Pocket<? extends Number> b; Pocket<Integer> bi = new Pocket<Integer>(); Pocket<Double> bd = new Pocket <Double>(); Pocket<String> bs = new Pocket <String>(); b = bi; // Ja b = bs; // Nein 15
16 Vererbung (1) Invarianz Verschiedene generische Typen sind zueinander inkompatibel, unabhängig von der Kompatibilität ihrer Typargumente Covarianz Zu Wildcard-Typen mit Upper-Typebound (C<? extends B>) sind alle generischen Typen kompatibel, deren Typargument zu B kompatibel ist 16
17 Vererbung (2) Varianzenübersicht Typ Invarianz C<T> T Bivarianz C<?> Alle Kompatible Typargumente Covarianz C<? extends B> B und abgeleritete Typen Contravarianz C<? super B> B und Basistypen 17
18 Übersetzen generischer Klassen Ansatz: Generische Datentypen werden in Java ausschließlich vom Compiler verarbeitet Laufzeitsystem weiß nichts von generischen Typen Übersetzung: Generischer Code wird in nicht generischen Code umgewandelt Aus jeder generischen Klasse wird eine nicht-generische Klasse generiert und in eine.class-datei übersetzt In C++ wird dagegen jede Instanziierung einer Klasse mit Typargumenten getrennt übersetzt -> dadurch langsameres Übersetzen und größere Kompilate aber bessere Optimierungsmöglichkeiten und weniger Einschränkungen 18
19 Type Erasure (1) Typ-Variablen in spitzen Klammern löschen Vorkommen von Typvariablen mit einem oder mehreren Typebounds durch den einzigen bzw. ersten Typebound ersetzen Vorkommen von Typvariablen ohne Typebounds durch Object ersetzen Die Typ-Korrektheit statisch prüfen (d.h. zum Übersetzungszeitpunkt) Typargumente müssen allen Typebounds genügen Generische Typen müssen auch untereinander korrekt verwendet werden, insbesondere bei Wildcard-Typen Typargumente, einschließlich Wildcards, in spitzen Klammern gelöscht Typecasts eingeschoben, wo der Wert eines Typarguments benutzt wird 19
20 Type erasure (2) Beispiel: Ohne Typebounds Generische Klasse public class Pocket<T> { private T value; public Pocket() {} public Pocket( T value ) { this.value = value; } Nach Type-Erasure public class Pocket { private Object value; public Pocket() {} public Pocket( Object value ) { this.value = value; } public void set( T value ) { this.value = value; } public void set( Object value ) { this.value = value; } public T get() { return value; } public boolean isempty() { return value!= null; } public Object get() { return value; } public boolean isempty() { return value!= null; } public void empty() { value = null; } } } public void empty() { value = null; } 20
21 Generics und Arrays (1) Nicht möglich: class TwoBox<T> { private T[ ] array = new T[ 2 ]; T[ ] getarray() { return array; } } // Fehler Cannot create a generic array of T Grund: class TwoBox { Object[ ] array = new Object[ 2 ]; // (1) Object[ ] getarray() { return array; } } 21
22 Generics und Arrays (2) Parametriert: TwoBox<String> twostrings = new TwoBox<String>(); String[ ] stringarray = twostrings.getarray(); Compiler generiert: TwoBox twostrings = new TwoBox(); String[ ] stringarray = (String[ ]) twostrings.getarray(); // (2) Lösung: Reflection T[ ] array = (T[]) Array.newInstance( clazz, 2 ); 22
23 Brückenmethoden Schnittstelle Comparable: public interface Comparable<T> { public int compareto( T o ); } Klasse Integer: public final class Integer extends Number implements Comparable<Integer> Neu angelegte Brückenmethode: public int compareto( Object anotherinteger ) { } return compareto( (Integer) anotherinteger ); 23
24 Grenzen generischer Typen (1) Primitive Typargumente Node<int> ni = new Node<int>(23); // Fehler! Aber: Node<Integer> ni = new Node<Integer>(23); // Autoboxing Statische Elemente class Broken<T> { static T data; } // Fehler! Grund: Alle Klassen Broken<T> teilen sich das Klassenattribut data. Welchen Typ soll es haben? Dynamische Typprüfung class Pocket<T> { boolean iscompatible(object o) { return o instanceof T; } } // Type-Erasure: o instanceof T o instanceof Object Fehler! 24
25 Grenzen generischer Typen (2) Typecasts Class Node<T> { T info; void setinfo(object o) { info = (T) o; } } // Sinnlos Type-Erasure: (T) o (Object) o Compiler erzeugt: warning: unchecked cast of type T Konstruktoraufrufe class Node<T> { T info; Node() { info = new T(); } } // Fehler Woher soll Java wissen, dass T einen Standard-Konstruktor hat? Beispiel: Node<Integer> ni = new Node<Integer>(); Ausweg: class Node<T> { T info; Node(T i) { info = i; } } Node<Integer> ni = new Node<Integer>(23); Generische Basistypen import java.util.date; class Timestamped<T> extends T { Date timestamp = new Date(); } // Fehler Generische Klasse muss Konstruktor der Basisklasse aufrufen können. Dieser kann hier aber nicht zur Kompilierzeit ermittelt werden! 25
26 Grenzen generischer Typen (3) Exceptions class UniversalException<T> extends Exception { T reason; } // Fehler Generische Typen können nicht für Exceptions verwendet werden, da das Fangen mit catch auf dem Ermitteln des Typs des geworfenen Objekts basiert. Dieser geht aber bei der Type-Erasure verloren. Compiler erzeugt: a generic class may not extend java.lang.throwable 26
27 Polymorphie und Generics Definition Polymorphe Methoden sind unabhängig von generischen Typen Sie können auch in nicht-generischen Klassen definiert werden 27
28 Abschluss Fragen? Danke für die Aufmerksamkeit! 28
29 Quellen Java ist auch eine Insel Uni Bremen Unterlagen zu PI-1 Wikipedia Uni Hamburg Unterlagen SE-1 29
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
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
5.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
Einführung in die Programmierung
Einführung in die Programmierung Teil 10: Typsicherheit durch generische Typen Prof. Dr. Peer Kröger, Florian Richter, Michael Fromm Wintersemester 2018/2019 Übersicht 1. Grundlagen 2. Typvariablen 3.
Generisches Programmieren
Generiche Programmieren homa Röfer Generiche Klaen und Interface Generiche ypen ypebound Wildcard-ypen Überetzung genericher Klaen Grenzen genericher ypen Polymorphe Methoden Rückblick Vererbung Pakete
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
Programmieren in Java
Programmieren in Java Vorlesung 05: Generics Prof. Dr. Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2015 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1 / 19 Inhalt Generics
Kapitel 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
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
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
9. Kapitel GENERICS. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm
9. Kapitel GENERICS Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Übersicht 1 1. Programmstrukturierung mit Paketen (packages) 2. Vererbung 3. Abstrakte Klassen und Interfaces 4. Ausnahmebehandlung
Faulheit professionell: Fertige Datenbehälter. Das Java-Collections-Framework Typsicherheit Generische Klassen
Faulheit professionell: Fertige Datenbehälter Das Java-Collections-Framework Typsicherheit Generische Klassen Das Java Collections Framework Grundlegende Interfaces Das Interface List Das Interface List
Polymorphie/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
Dynamische 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();
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
Einfache 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
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
Java 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
Kapitel 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
Gebundene Typparameter
Gebundene Typparameter interface StringHashable { String hashcode(); class StringHashMap { public void put (Key k, Value v) { String hash = k.hashcode();...... Objektorientierte
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
Generische Typen in Java 1.5. Die Erweiterung der Java Language Specification
Generische Typen in Java 1.5 - Seminarvortrag 1/26 Generische Typen in Java 1.5 Die Erweiterung der Java Language Specification Seminarvortrag von Heiko Minning, mi3795 bei Prof. Dr. Uwe Schmidt, FH-Wedel
Informatik II Übung 06. Benjamin Hepp 5 April 2017
Informatik II Übung 06 Benjamin Hepp [email protected] 5 April 2017 Nachbesprechung U5 5 April 2017 Informatik II - Übung 01 2 Nachbesprechung U5 1. Einfach verkettete Listen Keine Probleme 2.
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
Teil 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
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
Informatik II Übung 6
Informatik II Übung 6 Gruppe 2 Carina Fuss [email protected] 11.4.2018 Carina Fuss 11.4.2018 1 Übung 6 Nachbesprechung Übung 5 Objektorientierung Vererbung, Polymorphie, abstrakte Klassen, Interfaces,
Einleitung 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
Programmieren in Java
Programmieren in Java Vorlesung 11: Generic Methods Prof. Dr. Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2017 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1 / 15 Inhalt
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/
Universität Karlsruhe (TH)
Universität Karlsruhe (TH) Lehrstuhl für Programmierparadigmen Fortgeschr. Objektorientierung SS 2009 http://pp.info.uni-karlsruhe.de/ Dozent: Prof. Dr.-Ing. G. Snelting [email protected]
Programmieren 2 16 Java Collections und Generizität
Programmieren 2 16 Java Collections und Generizität Bachelor Medieninformatik Wintersemester 2015 Dipl.-Inform. Ilse Schmiedecke [email protected] 1 Faulheit professionell: Fertige Datenbehälter
1 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
EINFÜHRUNG IN DIE PROGRAMMIERUNG
EINFÜHRUNG IN DIE PROGRAMMIERUNG OBJEKTORIENTIERTES PROGRAMMIEREN Tobias Witt 25.03.2014 10:30-12:00 Täglich Übungen zur Vertiefung Laptop hier nicht erforderlich Aber in den Übungen! Linux, OS X http://hhu-fscs.de/linux-install-party/
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
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
Type 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
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
ADT: 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,
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
OOP. Tagesprogramm. Dynamische Typinformation. Homogene Übersetzung der Generizität. Generizität und Typumwandlungen
1 2016-11-30 Tagesprogramm Dynamische Typinformation Homogene Übersetzung der Generizität Generizität und Typumwandlungen 2 2016-11-30 Dynamische Typinformation Dynamische Typabfragen Abfrage der Klasse
Einstieg in die Informatik mit Java
1 / 22 Einstieg in die Informatik mit Java Grundlagen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White
Programmiermethodik 2. Klausur Lösung
Programmiermethodik 2. Klausur Lösung 2. 10. 2013 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 20 2 18 3 42 4 20 5 20 Gesamt 120 1 Seite 2 von 12 Aufgabe 1) Objekt-Orientierung und Vererbung
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
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,
4. Objektorientierte Programmierung mit C++
4. Objektorientierte Programmierung mit C++ Einführung C++ / Entwicklung der Sprachfamilie Erweiterungen der Sprache C: Ein- und Ausgabe, Referenzen, Speicherallokation und Freigabe Grundlagen des Typkonzepts
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
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
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
Javakurs 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
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
ListElement (E i n f o, ListElement<E> prev, ListElement<E> next ) {
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2011 Einführung in die Informatik I Übungsblatt 11 Prof. Dr. Helmut Seidl, A. Lehmann, A. Herz,
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,
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
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
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
Themen der Übung. Methoden und Wrapperklassen. Vorteile von Methoden. Methoden. Grundlagen
Themen der Übung 1 Organisatorisches Methoden und Wrapperklassen 2 Methoden 3 Wrapper-Klassen CoMa-Übung IV TU Berlin 07.11.2012 Organisatorisches: Im Pool nur auf die Abgabeliste setzen, wenn ihr wirklich
Vererbung. 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
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
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
Programmierkurs 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
DAP2-Programmierpraktikum Einführung in C++ (Teil 2)
DAP2-Programmierpraktikum Einführung in C++ (Teil 2) Carsten Gutwenger 18. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Dynamischer Speicher Klassen und
Grundelemente objektorientierter Sprachen (1)
Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte
Programmiermethodik 3. Klausur Lösung
Programmiermethodik 3. Klausur Lösung 9. 1. 2014 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 20 2 16 3 45 4 19 5 20 Gesamt 120 1 Seite 2 von 10 Aufgabe 1) Objekt-Orientierung 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
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)
Grundelemente objektorientierter Sprachen (1)
Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte
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
