Praktische Softwaretechnologie Vorlesung 5
|
|
- Bertold Franke
- vor 7 Jahren
- Abrufe
Transkript
1 Praktische Softwaretechnologie Vorlesung 5 Martin Giese Johann Radon Institute for Computational and Applied Mathematics Österr. Akademie der Wissenschaften Linz PSWT November 2006 p.1/41
2 Die API Dokumentation API = Application Programming Interface 166 Packages 3417 Klassen > Methoden und Felder Online Dokumentation (JavaDoc): Zum Download (44MB): Link J2SE 5.0 Documentation auf PSWT November 2006 p.2/41
3 Object vertiefen Die 3 wichtigsten Methoden: tostring() equals() hashcode() PSWT November 2006 p.3/41
4 equals(object) überschreiben Bedingungen an equals: Die Relation {(x, y) x.equals(y) == true auf Referenzen!= null ist Äquivalenzrelation x.equals(null) == false für x!=null Wert von x.equals(y) kann sich nur ändern wenn sich der Zustand von x oder y ändert. Auch hashcode() überschreiben! PSWT November 2006 p.4/41
5 equals(object) überschreiben (forts.) public class Point { private int x,y;... public boolean equals(object o) { if (o instanceof Point) { Point p = (Point)o; return (x == p.x) && (y == p.y); else { return false; Unterklassen mit mehr Zustand (WeightedPoint) sollten equals(object) nicht spezifischer machen! Aufgabe 14 PSWT November 2006 p.5/41
6 equals(object) überschreiben (forts.) public class Point { private int x,y;... public boolean equals(object o) { if (o instanceof Point) { Point p = (Point)o; return (x == p.x) && (y == p.y); else { return false; public int hashcode() { return 31*x + y; PSWT November 2006 p.5/41
7 Die Wrapper Klassen Eine Klasse in java.lang für jeden primitiven Typ: Boolean, Byte, Short, Integer, Long, Character, Float, Double Objekte enthalten unveränderliches Feld vom entspr. Typ Wichtigste Felder/Methoden: MIN_VALUE, MAX_VALUE int intvalue() etc. static Integer valueof(int) static int parseint(string) in Character auch tolower(), toupper(), etc. PSWT November 2006 p.6/41
8 Autoboxing Konvertierung zwischen Wrapper primitiven Typen bei Bedarf: void mprim(int i) {... void mref(integer i) {... int prim = 42; Integer ref = new Integer(23); Compiler wandelt um in mprim(ref) bzw. mref(42) mprim(ref.intvalue()) bzw. mref(integer.valueof(42)) PSWT November 2006 p.7/41
9 Mehr über Strings Wichtigste Methoden: char charat(int index), String substring(...) boolean startswith(string start), boolean endswith(string end) int indexof(string str),... String tolowercase(), String touppercase() Zusätzlich viele Methoden char Unicode code points PSWT November 2006 p.8/41
10 StringBuilder String s = ""; for (int i=0; i<100; i++) { s = s + text(i); PSWT November 2006 p.9/41
11 StringBuilder String s = ""; for (int i=0; i<100; i++) { s = s + text(i); // 100 neue String Objekte! PSWT November 2006 p.9/41
12 StringBuilder String s = ""; for (int i=0; i<100; i++) { s = s + text(i); // 100 neue String Objekte! Besser: Objekt mit StringBuilder bauen, dann String lesen. StringBuilder sb = new StringBuilder(); for (int i=0; i<100; i++) { sb.append(text(i)); String s = sb.tostring(); PSWT November 2006 p.9/41
13 StringBuilder String s = ""; for (int i=0; i<100; i++) { s = s + text(i); // 100 neue String Objekte! Besser: Objekt mit StringBuilder bauen, dann String lesen. StringBuilder sb = new StringBuilder(); for (int i=0; i<100; i++) { sb.append(text(i)); String s = sb.tostring(); Viele Methoden geben this zurück: sb.append("text Nr.").append(i).append(" ist ").append(text(i)); PSWT November 2006 p.9/41
14 java.lang.math Mathematische Standardfunktionen (Siehe JavaDocs) PSWT November 2006 p.10/41
15 java.math Package java.math enthält Klassen BigInteger BigDecimal für Arithmetik mit beliebiger Genauigkeit: BigInteger ist beliebig lange ganze Zahl BigDecimal ist skalierte Zahl m 10 n für int n, variable Genauigkeit PSWT November 2006 p.11/41
16 Die I/O Klassen 2 Familien von I/O Kanälen: InputStream und OutputStream für Folgen von Bytes. Reader und Writer für Text = Folgen von Characters Zusammenhang über java.nio.charset.charset: ein Name, "US-ASCII", "UTF-8", "ISO ", etc. eine Abb. Folgen von 16-bit char Folgen von bytes PSWT November 2006 p.12/41
17 InputStream Klassen InputStream System.in ByteArrayInputStream FilterInputStream FileInputStream... BufferedInputStream InflaterInputStream CipherInputStream DataInputStream... PSWT November 2006 p.13/41
18 OutputStream Klassen OutputStream ByteArrayIOutputStream FilterInputStream FileOutputStream... BufferedOutputStream DeflaterOutputStream PrintStream CipherOutputStream DataOutputStream... System.out, System.err PSWT November 2006 p.14/41
19 Reader Klassen Reader StringReader BufferedReader... CharArrayReader InputStreamReader FilterReader FileReader PSWT November 2006 p.15/41
20 Writer Klassen Writer StringWriter BufferedWriter PrintWriter... CharArrayWriter OutputStreamWriter FilterWriter FileWriter PSWT November 2006 p.16/41
21 Ausgabe leicht gemacht Text auf stdout ausgeben: System.out.println(...); Text in Datei schreiben: PrintWriter pw = new PrintWriter("blabla.txt"); pw.println(...); pw.close(); Binärdaten in Datei schreiben: FileOutputStream fos = new FileOutputString("data.bin"); DataOutputStream dos = new DataOutputStream(fos); dos.writeint(23); dos.writedouble(12.3); dos.close(); PSWT November 2006 p.17/41
22 Eingabe leicht gemacht Text zeilenweise von stdio lesen: InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); String line = br.readline(); Text zeilenweise aus Datei lesen: FileReader fr = new FileReader("blabla.txt"); BufferedReader br = new BufferedReader(fr); String line = br.readline(); if (line == null) {...end of file... br.close(); Binärdaten aus Datei lesen: FileInputStream fis = new FileInputString("data.bin"); DataInputStream dis = new DataInputStream(fis); int i = dis.readint(); double d = dis.readdouble(); PSWT November 2006 p.18/41 dis.close();
23 Generische Typen Interface Stack bisher: interface Stack { void push(string s); String pop(); boolean isempty(); nur für String Objekte PSWT November 2006 p.19/41
24 Generische Typen Interface Stack für Objekte: interface Stack { void push(object s); Object pop(); boolean isempty(); PSWT November 2006 p.19/41
25 Generische Typen Interface Stack für Objekte: interface Stack { void push(object s); Object pop(); boolean isempty(); Anwendendung mit Strings: Stack stringstack = new ArrayStack(); stringstack.push("hallo");... String s = (String)(stringStack.pop()); lästig und fehleranfällig PSWT November 2006 p.19/41
26 Generische Typen Generisches Interface Stack: interface Stack<E> { void push(e s); E pop(); boolean isempty(); PSWT November 2006 p.19/41
27 Generische Typen Generisches Interface Stack: interface Stack<E> { void push(e s); E pop(); boolean isempty(); Anwendendung mit Strings: Stack<String> stringstack = new ArrayStack<String>(); stringstack.push("hallo");... String s = stringstack.pop(); PSWT November 2006 p.19/41
28 Generische Typen Generisches Interface Stack: interface Stack<E> { void push(e s); E pop(); boolean isempty(); Anwendendung mit ints: Stack<Integer> intstack = new ArrayStack<Integer>(); intstack.push(23); // auto-boxing... int i = intstack.pop(); // auto-unboxing PSWT November 2006 p.19/41
29 Generische Typen Generisches Interface Stack: interface Stack<E> { void push(e s); E pop(); boolean isempty(); Anwendendung mit ints: Stack<Integer> intstack = new ArrayStack<Integer>(); intstack.push(23); // auto-boxing... int i = intstack.pop(); // auto-unboxing Im Java Tutorial vertiefen! PSWT November 2006 p.19/41
30 Implementierung von Generischen Typen Typ-Parameter nur beim Compilieren bekannt interface Stack<E> { interface Stack { push(e o); push(object o); E pop(); Object pop(); Daher Einschränkungen: Keine Konstruktoren oder statischen Methoden auf E oder E[] o instanceof E, o instanceof Stack<String>, etc. nicht erlaubt Casts (E) und (E[]) ohne Laufzeitcheck (aber unchecked Warnung vom Compiler) PSWT November 2006 p.20/41
31 Beispiel für unchecked Cast public class ArrayStack<E> { E[] elements; int top = 0; ArrayStack(int initialsize) { elements = new T[initialSize]; Compilerfehler: generic array creation PSWT November 2006 p.21/41
32 Beispiel für unchecked Cast public class ArrayStack<E> { E[] elements; int top = 0; ArrayStack(int initialsize) { elements = new Object[initialSize]; Compilerfehler: incompatible types found : java.lang.object[] required: E[] PSWT November 2006 p.21/41
33 Beispiel für unchecked Cast public class ArrayStack<E> { E[] elements; int top = 0; ArrayStack(int initialsize) { elements = (E[]) new Object[initialSize]; Compilerwarnung: Note: stack/arraystack.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. PSWT November 2006 p.21/41
34 Beispiel für unchecked Cast public class ArrayStack<E> { E[] elements; int top = 0; ArrayStack(int initialsize) { elements = (E[]) new Object[initialSize]; Compilerwarnung mit -Xlint:unchecked: stack/arraystack.java:6: warning: [unchecked] unchecked cast found : java.lang.object[] required: E[] PSWT November 2006 p.21/41
35 Das Collection Framework Standardinterfaces und Implementierungen für Listen von Objekten: java.util.list<e> Mengen von Objekten: java.util.set<e> Abbildungen von Objekten: java.util.map<k,v> Verwendung von Interfaces und abstrakten Klassen wie Stack! PSWT November 2006 p.22/41
36 Map Klassen Map AbstractMap SortedMap HashMap TreeMap PSWT November 2006 p.23/41
37 Verwendung von Map Map<Integer,String> namen = new HashMap<Integer,String>(); namen.put( ,"ghitescu Antonia Luisa"); namen.put( ,"wiesinger Robert"); namen.put( ,"punzengruber Christian"); String n = namen.get( ); if (namen.containskey( )) {... if (namen.containsvalue("meindl Diana")) {... Eigene Klassen als Schlüssel verwenden: equals und hashcode implementieren PSWT November 2006 p.24/41
38 Collection Klassen Collection AbstractCollection List Set AbstractList AbstractSet SortedSet ArrayList LinkedList HashSet TreeSet PSWT November 2006 p.25/41
39 Utility Klassen java.util.arrays Arrays mit Werten füllen Arrays sortieren In sortierten Arrays suchen java.util.collections Listen sortieren Suchen in Listen Maximales Element in Collection suchen... PSWT November 2006 p.26/41
40 Comparable Um Objekte sortieren zu können: Interface java.lang.comparable<t> implementieren mit Methode int compareto(t o) < 0 falls this < o 0 falls this = o > 0 falls this > o Am besten 0 gdw this.equals(o) Legt natürliche Ordnung von Objekten fest. PSWT November 2006 p.27/41
41 Beispiel Comparable Punkte nach x, dann y Koordinate sortieren public class Point implements Comparable<Point> { private int x; private int y; public int compareto(point other) { if( this.x == other.x ) { return this.y - other.y; else { return this.x - other.x; Point[] points = new Point[20]; java.util.arrays.sort(points); PSWT November 2006 p.28/41
42 Iteratoren Schleifen über alle Elemente einer Collection: mit Iterator interface Iterator<E> { boolean hasnext(); E next(); List<Point> l;... Iterator<Point> it = l.iterator(); while (it.hasnext()) { Point p = it.next(); p.move(1,0); PSWT November 2006 p.29/41
43 Iterator Reihenfolge Reihenfolge Bei List von vorne nach hinten Bei Set nicht spezifiziert Bei SortedSet vom kleinsten zum größten gemäß compareto() PSWT November 2006 p.30/41
44 Das foreach Statement Iterator sehr häufig: neues Sprachkonstrukt List<Point> l; for(point p : l) { p.move(1,0); Geht für alle Collections, und auch für Arrays. PSWT November 2006 p.31/41
45 Beispiel: Argumente sortieren Wörter von der Kommandozeile ohne Duplikate sortiert ausgeben. public static void main(string[] args) { SortedSet<String> words = new TreeSet<String>(); for (String s : args) { words.add(s); for (String s : words) { System.out.println(s); PSWT November 2006 p.32/41
46 Effective Java Sehr gutes Buch zu den Feinheiten von Java: Joshua Bloch, Effective Java TM Programming Language Guide, Addison Wesley, 2001 PSWT November 2006 p.33/41
47 Aufgabe 10 Vertiefen und Ergänzen des Stoffs durch Lesen in verschiedenen Tutorials: Learning the Java Language: Numbers and Strings Essential Java Classes: Basic I/O Collections PSWT November 2006 p.34/41
48 Aufgabe 11 Ein Programm, das eine Zahl n von der Kommandozeile liest die Zahl e = ! + 1 3! + mit n Stellen Genauigkeit berechnet und ausgibt dazu die Klassen in java.math benutzt > Java E PSWT November 2006 p.35/41
49 Aufgabe 12 Ein Programm, das sukzessive Primzahlen berechnet. Eingabe: Zahl n Ausgabe: Alle Primzahlen unter n Algorithmus: P := { Für i := 2,..., n { Falls kein j P Teiler von i ist, setze P := P {i P ist das Resultat PSWT November 2006 p.36/41
50 Aufgabe 13 Ein Programm, das eine Textdatei zeilenweise einliest Entweder von System.in Oder aus einer Datei die auf der Kommandozeile genannt wird Jede Zeile in Wörter (Folgen von Buchstaben) zerlegt Character.isLetter(char c) Eine Tabelle ausgibt wie oft jedes Wort vorgekommen ist nach absteigender Häufigkeit sortiert. Dabei sollen alle Hashtabellen, sowie Sortieren, etc. von Standardklassen erledigt werden! PSWT November 2006 p.37/41
51 Aufgabe 13 (Beispiel) > cat test.txt fünf fünf vier fünf vier drei fünf vier drei zwei! +fünf, vier drei zwei eins > java WordCount test.txt fünf 5 vier 4 drei 3 zwei 2 eins 1 PSWT November 2006 p.38/41
52 Aufgabe 14 Betrachte folgende Klasse... public class Point { private int x,y;... public boolean equals(object o) { if (o instanceof Point) { Point p = (Point)o; return (x == p.x) && (y == p.y); else { return false; PSWT November 2006 p.39/41
53 Aufgabe 14 (forts.)... und folgende: public class WeightedPoint extends Point { private int w;... public boolean equals(object o) { if (o instanceof WeightedPoint) { WeightedPoint wp = (WeightedPoint)o; return super.equals(wp) && (w == wp.w); else { return false; Inwiefern wird der Vertrag von equals gebrochen? Was könnte man dagegen tun? PSWT November 2006 p.40/41
54 Aufgabe 15 Eine Erweiterung des Stack Frameworks aus Aufgabe 9: Statt nur Strings zu stapeln, einen Parameter einführen: public interface Stack<E> { void push(e o); E pop();... Eine zusätzliche Implementierung LinkedListStack<E> die eine java.util.linkedlist benutzt. Alle Implementierungen sollen equals und hashcode unterstützen. (Alle Objekte auf Stapel equals? Für hashcode siehe java.util.list) PSWT November 2006 p.41/41
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
MehrPraktische Softwaretechnologie Vorlesung 4
Praktische Softwaretechnologie Vorlesung 4 Martin Giese Johann Radon Institute for Computational and Applied Mathematics Österr. Akademie der Wissenschaften Linz PSWT 2006 31. Oktober 2006 p.1/28 Die Klasse
MehrPraktische Softwaretechnologie Vorlesung 3
Praktische Softwaretechnologie Vorlesung 3 Martin Giese Johann Radon Institute for Computational and Applied Mathematics Österr. Akademie der Wissenschaften Linz PSWT 2006 24. Oktober 2006 p.1/26 Klassendefinition
MehrJava I/O. Input / Output stream Library Regelt I/O über verschiedene Kanäle. Führt notwendige Umwandlungen/Konvertierungen aus
Java I/O Input / Output stream Library Regelt I/O über verschiedene Kanäle Filesystem Console Netzwerk Intern Führt notwendige Umwandlungen/Konvertierungen aus 1 Furchtbar viele Klassen BufferedInputStream
MehrVorlesung Programmieren
Vorlesung Programmieren 12 Java API Jun.-Prof. Dr.-Ing. Anne Koziolek Version 1.1 ARBEITSGRUPPE ARCHITECTURE-DRIVEN REQUIREMENTS ENGINEERING (ARE) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION
MehrVorlesung Programmieren
Vorlesung 25.01.2007 Wintersemester 2006/2007 Computerlinguistik, Campus DU Überblick Seite 2 Datenströme: Ein und Ausgabe von Daten Java Collections Framework Eingabe/Ausgabe Seite 3 Lesen, Schreiben
MehrVorlesung Programmieren
Vorlesung Programmieren 15 Java API Prof. Dr. Ralf H. Reussner Version 1.0 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD), FAKULTÄT FÜR INFORMATIK
MehrNützliche Utility-Klassen des JDK
Nützliche Utility-Klassen des JDK java.util :, Properties, I18N, Scanner java.text : Ausgabeformatierung u.a. java.util.prefs : Hierarchische Konfigurationsdaten (1.5) java.util.logging : Aufzeichnung
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
MehrInfo B VL 14: Java Collections/Reflections
Info B VL 14: Java Collections/Reflections Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 14: Java Collections/Reflections
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
MehrVorlesung Programmieren
Vorlesung Programmieren Java I/O Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck https://www.itm.uni-luebeck.de/people/fischer Java I/O: Input und Output mit Java Heute Ein-/Ausgabe
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
MehrObjektorientierte Implementierung
Objektorientierte Implementierung 10) Verfeinern von Assoziationen mit dem Java-2 Collection Framework Softwaretechnologie, Prof. Uwe Aßmann, Prof. Heinrich Hussmann 1 Objektorientierte Implementierung
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
MehrDatenströme in Java. Zeichenkonvertierung
Datenströme in Java Arten von Strömen Ein- und Ausgabeoperationen sind in Java im Wesentlichen über Datenströme realisiert. Dabei werden zwei Arten von Datenströmen unterschieden; byteorientierte Ströme
MehrJava I/O. Input / Output stream Library Regelt I/O über verschiedene Kanäle. Führt notwendige Umwandlungen/Konvertierungen aus
Java I/O Input / Output stream Library Regelt I/O über verschiedene Kanäle Filesystem Console Netzwerk Intern Führt notwendige Umwandlungen/Konvertierungen aus 1 Furchtbar viele Klassen BufferedInputStream
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
MehrProgrammierkurs Java
Programmierkurs Java Java Generics und Java API (2/2) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck https://www.itm.uni-luebeck.de/people/fischer #2 Listen Bisher: Collections
MehrJava Einführung Collections
Java Einführung Collections Inhalt dieser Einheit Behälterklassen, die in der Java API bereitgestellt werden Wiederholung Array Collections (Vector, List, Set) Map 2 Wiederholung Array a[0] a[1] a[2] a[3]...
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Überblick Parametrisierte Datentypen mit Java Generics Java Collections Framework Parametrisierte
Mehr1. Betrachte das folgende Programm:
Prof. Dr. Detlef Krömker Ashraf Abu Baker Robert-Mayer-Str. 10 60054 Frankfurt am Main Tel.: +49 (0)69798-24600 Fax: +49 (0)69798-24603 EMail: baker@gdv.cs.uni-frankfurt.de 1. Betrachte das folgende Programm:
MehrObjektorientierung II & die Java Klassenbibliothek. Kristian Bergmann und Arthur Lochstampfer
Java Kurs Objektorientierung II & die Java Klassenbibliothek Kristian Bergmann und Arthur Lochstampfer Vergleich class Apfel { String farbe; int gewicht; String geerntetin; class Erdbeere { String farbe;
MehrVorlesung Programmieren. Java I/O: Input und Output mit Java. Ein-/Ausgabe von Daten. Java I/O. Heute. Grundlage fast aller Programme
Vorlesung Programmieren Java I/O Dr. Dennis Pfisterer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/pfisterer Java I/O: Input und Output mit Java Heute Ein-/Ausgabe
MehrStreams. V by WBR1&MOU2/BFH-TI. Berner Fachhochschule Hochschule für Technik und Informatik HTI
Ein- Ausgabe Streams Unterlagen zum Modul "OOP mit Java" V 3.0 2011 by WBR1&MOU2/BFH-TI Ein- Ausgabe, Streams V3.0 2011 by WBR1&MOU2/BFH-TI Definition: Berner Fachhochschule Streams Ein Stream ist eine
MehrObjektorientierte Programmierung. Kapitel 19: Wrapper-Klassen
19. Wrapper-Klassen 1/27 Objektorientierte Programmierung Kapitel 19: Wrapper-Klassen Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2014/15 http://www.informatik.uni-halle.de/
MehrProgrammiertechnik II
Datentypen in Java Primitive Typen in Java Wertesemantik (keine Referenzsemantik) Vordefinierte Hüllklassen (etwa java.lang.float) Integrale Typen: char, byte, short, int, long Gleitkommatypen: float,
MehrPropädeutikum Programmierung in der Bioinformatik
Propädeutikum Programmierung in der Bioinformatik Java Collections Thomas Mauermeier 15.01.2019 Ludwig-Maximilians-Universität München Collections? Was ist eine Collection? Container für mehrere Objekte
MehrII.4.6 Collections - 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.6 Collections - 1 - Typische Datenstrukturen
MehrJava Fehlerbehandlung
Java Fehlerbehandlung 1 Fehlerbehandlung In jedem nicht-trivialen Programm kann es während der Laufzeit zu Fehlersituationen kommen. Dabei handelt es sich nicht unbedingt um Programmierfehler: z. B.: Programm
Mehr17. Java Collections. Daten Organisieren. Generische Liste in Java: java.util.list. Typ Parameter (,,Parametrischer Polymorphisums )
Daten Organisieren Datenstrukturen, die wir kennen 17 Java Collections Generische Typen, Interfaces, Java Collections, Iteratoren Heute: Arrays Sequenzen fixer Grösse Strings Buchstabensequenzen Verkettete
MehrSammlungen Listen Mengen Abbildungen Algorithmen Wrapper
Sammlungen Listen Mengen Abbildungen Algorithmen Wrapper Pratikum SWE 2 M. Löberbauer T. Kotzmann H. Prähofer 1 Einleitung Collections sind Datenstrukturen für Sammlungen von Daten Stacks Queues Priority
MehrProgrammiertechnik II
Programmiertechnik II Datentypen Primitive Typen in Java Wertesemantik (keine Referenzsemantik) Vordefinierte Hüllklassen (etwa java.lang.float) Integrale Typen: char, byte, short, int, long Gleitkommatypen:
MehrOCP Java SE 8. Collections
OCP Java SE 8 Collections Collections (Interfaces) Iterable Collection Set List Queue SortedSet Deque Collection List erlaubt Duplikate und null behält die Reihenfolge Set erlaubt keine Duplikate Queue
Mehrjava.io Ziel Ressourcen Page 1 Verstehen der unterschiedlichen I / O Möglichkeiten Anwenden der Java I/ O Klassen Java Tutorial Java API Dokumentation
java.io Ziel Verstehen der unterschiedlichen I / O Möglichkeiten Anwenden der Java I/ O Klassen Ressourcen Java Tutorial Java API Dokumentation Page 1 Java API Prinzip Java IO-API ist für eine allgemeine
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa AG Softech FB Informatik TU Kaiserslautern Lernziele Abstrakte Datentypen Stack und Queue zu implementieren und anzuwenden Vorteile von parametrischer Polymorphie
MehrWo sind wir? Rudolf Berrendorf FH Bonn-Rhein-Sieg Programmiersprache Java 313
Wo sind wir? Java-Umgebung Lexikale Konventionen Datentypen Kontrollstrukturen Ausdrücke Klassen, Pakete, Schnittstellen JVM Exceptions Java Klassenbibliotheken Ein-/Ausgabe Collections Threads Applets,
MehrAufgabenblatt 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
MehrProgrammieren 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
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
MehrIT I: Heute. Klasse Object. equals, hashcode, tostring. HashSet IT I - VO 6 1
IT I: Heute Klasse Object equals, hashcode, tostring HashSet 14.11.2017 IT I - VO 6 1 Wissensüberprüfung Wie ruft man statische Methode auf? Gegeben Klasse Fix mit statischer Methode static boolean foxi(string
MehrModellierung und Programmierung 1
Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 27. Januar 2016 Lesen und Schreiben von Zeichen Reader read(); close();
MehrSoftwaretechnik WS 16/17. Übungsblatt 01
Softwaretechnik WS 16/17 Übungsblatt 01 Was ist eine Klasse? Definition der Object Management Group: A class describes a set of objects that share the same specifications of features, constraints, and
Mehrn 1. Grundzüge der Objektorientierung n 2. Methoden, Unterprogramme und Parameter n 3. Datenabstraktion n 4. Konstruktoren n 5. Vordefinierte Klassen
n 1. Grundzüge der Objektorientierung n 2. Methoden, Unterprogramme und Parameter n 3. Datenabstraktion n 4. Konstruktoren n 5. Vordefinierte Klassen II.2.3 Datenabstraktion - 1 - public class Rechteck
MehrProgrammiertechnik II
Datentypen in Java Primitive Typen in Java Wertesemantik (keine Referenzsemantik) Vordefinierte Hüllklassen (etwa java.lang.float) Integrale Typen: char, byte, short, int, long Gleitkommatypen: float,
MehrJAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)
JAVA BASICS 2. Primitive Datentypen 1. Warum Java? weit verbreitet einfach und (relativ) sicher keine Pointer (?) keine gotos kein Präprozessor keine globalen Variablen garbage collection objekt-orientiert
Mehr4. 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
MehrInstitut für Programmierung und Reaktive Systeme 6. Juli Programmieren II. Übungsklausur
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 6. Juli 2018 Hinweise: Klausurtermine: Programmieren II Übungsklausur Programmieren I: 27. August
MehrStreams. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java
Streams Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 4.7.07 G. Bohlender (IANM UNI Karlsruhe) Streams 4.7.07 1 / 7 Übersicht 1 Einführung
MehrAlgorithmen und Programmierung II
Algorithmen und Programmierung II Abstrakte Klassen, Schnittstellen und ADT Prof. Dr. Margarita Esponda SS 2012 1 Interfaces In Java sind Interfaces sowohl ein Abstraktionsmittel (zum Verbergen von Details
MehrJavakurs FSS Lehrstuhl Stuckenschmidt. Tag 4 ArrayList, PriorityQueue, HashSet und HashMap
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 4 ArrayList, PriorityQueue, HashSet und HashMap Array List Dynamisches Array ArrayList vertritt ein Array mit variabler Länge Kapazität passt sich automatisch
MehrTeil II) Objektorientierte Implementierung 10) Verfeinern von UML-Assoziationen mit dem Java-2 Collection Framework
Teil II) Objektorientierte Implementierung 10) Verfeinern von UML-Assoziationen mit dem Java-2 Collection Framework Prof. Dr. rer. nat. Uwe Aßmann Institut für Software- und Multimediatechnik Lehrstuhl
MehrKapitel 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,
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
MehrCS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)
CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) Datentypen und Datenstrukturen Selbst definierte Datenstrukturen Innere Klassen Seite 1 Typen: 1. Kasper 2. Prinzessin 3. Großmutter
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
MehrTeil 2-3. Vorlesung. Modul: Programmierung B-PRG Grundlagen der Programmierung II
Teil 2-3. Vorlesung Modul: Programmierung B-PRG Professur für Datenbanken und Informationssysteme Dr. Karsten Tolle tolle@dbis.cs.uni-frankfurt.de 1 Wrapper-Klassen Alle primitive Datentypen haben eine
MehrEin- und Ausgabe. Algorithmen und Datenstrukturen II 1
Ein- und Ausgabe Algorithmen und Datenstrukturen II 1 In den bisherigen Programmbeispielen wurden die Benutzereingaben immer über die Kommandozeile und Ausgaben immer durch Aufruf der Methode System.out.println
MehrEingabe und Ausgabe in Java. Dr. Horst Treiblmaier Abteilung für Wirtschaftsinformatik WU Wien
Eingabe und Ausgabe in Java Dr. Horst Treiblmaier Abteilung für Wirtschaftsinformatik WU Wien Eingabe Beispiel1 public class Input1 { public static void main(string[] args) { for (int i = 0; i < args.length;
MehrAlgorithmen und Programmierung III
Musterlösung zum 4. Aufgabenblatt zur Vorlesung WS 2006 Algorithmen und Programmierung III von Christian Grümme Aufgabe 1 Amortisierte Analyse 10 Punkte Zu erst betrachte ich wie oft die letzte Ziffer
MehrDie 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
MehrArten von Streams. Daten. Bytes (8-Bits) Java Programm. Daten. Java Programm. Characters (16 - Bits)
Datenströme Arten von Streams Daten 0 1 1 0 1 0 1 0 Java Programm Bytes (8-Bits) Daten 0 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 Java Programm Characters (16 - Bits) Byteströme(InputStream/OutputStream) I Java Programm
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
MehrInfo B VL 7: Input/Output
Info B VL 7: Input/Output Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 7: Input/Output p.174 Exkurs:
MehrIdee: 14.2 Generische Klassen
14.2 Generische Klassen Idee: Seit Version 1.5 verfügt Java über generische Klassen... Anstatt das Attribut info als Object zu deklarieren, geben wir der Klasse einen Typ-Parameter T für info mit!!! Bei
MehrInstitut für Programmierung und Reaktive Systeme 7. Juli Programmieren II. Übungsklausur
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 7. Juli 2017 Hinweise: Klausurtermine: Programmieren II Übungsklausur Programmieren I: 28. August
MehrWo sind wir? Rudolf Berrendorf FH Bonn-Rhein-Sieg Programmiersprache Java 338
Wo sind wir? Java-Umgebung Lexikale Konventionen Datentypen Kontrollstrukturen Ausdrücke Klassen, Pakete, Schnittstellen JVM Exceptions Java Klassenbibliotheken Ein-/Ausgabe Collections Threads Applets,
MehrVorlesung Programmieren
Vorlesung Programmieren Java Generics und Java API Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck https://www.itm.uni-luebeck.de/people/fischer Programme verarbeiten Daten Häufig
MehrKapitel 14. Das Java Collection Interface. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz
Kapitel 14 Das Java Collection Interface 14. Das Java Collection Interface 1. Collections 2. Iteratoren (Iterators) 3. Listen (List) 4. Mengen (Set) 5. Hashtabellen (Map) 6. Generics Folie 14.2 Das Java
MehrEinführung in Java, Teil 7
Einführung in Java, Teil 7 (a) Weitere grundlegende Konzepte, und (b) Applikationen Vorlesung Informatik I, 8 & 13.12.2005, Daniel Huson Grundtypen und ihre Wrapper - Klassen Die Grunddatentypen in Java
MehrDistributed Computing Group
JAVA TUTORIAL Distributed Computing Group Vernetzte Systeme - SS 06 Übersicht Warum Java? Interoperabilität grosse und gut dokumentierte Library weit verbreitet Syntax sehr nahe an C Erfahrung: Java wird
MehrJohannes Unterstein - TINF16 - Java - Sommersemester 2017 JAVA. Wiederholung
JAVA Wiederholung 137 WIEDERHOLUNG ALLGEMEIN public static void main(string args[]) {...} Namenskonventionen: KlassenNamen beginnen mit Großbuchstaben Variablen- und Methoden-Namen mit kleinem Buchstaben
MehrKapitel 5: Iterierbare Container
Kapitel 5: Iterierbare Container Foreach-Schleife Interface Iterator Interface Iterable Iterator-Schleife und Foreach-Schleife Generische Liste mit Iteratoren Prof. Dr. O. Bittel, HTWG Konstanz Programmiertechnik
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
Mehr1. Welches Interface ist nicht von Collection abgeleitet? A. B. C. D. List Set Map SortedSet. 2. Welche Aussagen sind richtig?
Prof. Dr. Detlef Krömker Ashraf Abu Baker Robert-Mayer-Str. 10 60054 Frankfurt am Main Tel.: +49 (0)69798-24600 Fax: +49 (0)69798-24603 EMail: baker@gdv.cs.uni-frankfurt.de 1. Welches Interface ist nicht
Mehr19 Collections Framework
Collection = Containterklasse, die andere Objekte enthält. Inhalte: Schnittstellen Implementierungen Algorithmen Vorteile: Einheitlicher Zugriff auf Containerobjekte. Abstraktion von den Implementierungsdetails.
MehrMethoden 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)
MehrWie schreibt bzw. wie liest man die beiden unterschiedlichen Darstellungen?
Problem 2: Wie schreibt bzw. wie liest man die beiden unterschiedlichen Darstellungen? Dazu stellt Java im Paket Ú º Ó eine Vielzahl von Klassen zur Verfügung... 15.1 Byteweise Ein- und Ausgabe Zuerst
MehrÜbungsstunde 9. Einführung in die Programmierung I
Übungsstunde 9 Einführung in die Programmierung I Probleme bei Übung 8 [TODO Assistent] Nachbesprechung Übung 9 Aufgabe 1 Spieler Spieler[] spieler = { new ZufallsWortSpieler(), new ZufallsWortSpielerMitGedaechtnis(),
MehrKapitel 6: Java Collection Teil I
Kapitel 6: Java Collection Teil I Übersicht Bemerkungen Collection List LinkedList und ArrayList Queue und Deque ArrayDeque 6-1 In diesem Kapitel Die Java-API enthält eine Sammlung von generischen Schnittstellen
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
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,
MehrEinheitliches Typsystem
Typen 1 Einheitliches Typsystem Typen Werttypen Referenztypen Zeiger Einfache Typen Enums Structs Klassen Interfaces Arrays Delegates bool char sbyte short int long byte ushort uint ulong float double
MehrFragenkatalog ESOP WS 16/17
Fragenkatalog ESOP WS 16/17 1. Einleitung 1.1 Was ist Programmieren? 1.2 Was ist ein Programm? 1.3 Welche Schritte werden bei der Programmerstellung benötigt? 1.4 Was ist ein Algorithmus? 1.5 Was sind
MehrEinstieg in die Informatik mit Java
1 / 15 Einstieg in die Informatik mit Java Streams Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 15 1 Überblick Ein-Ausgabe 2 Klassenhierarchie (Byteorientiert) 3 Klassenhierarchie
MehrJava Spickzettel von Panjutorials.de
Java Spickzettel von Panjutorials.de Hallo Welt public class HalloWelt public static void main(string[] args) // Gibt "Hallo Welt" auf die Konsole aus System.out.print("Hallo Welt"); Eine eigenständige
MehrSchnittstellen, Stack und Queue
Schnittstellen, Stack und Queue Schnittstelle Stack Realisierungen des Stacks Anwendungen von Stacks Schnittstelle Queue Realisierungen der Queue Anwendungen von Queues Hinweise zum Üben Anmerkung: In
MehrWelcome to java. einfach objektorientiert verteilt interpretierend robust secure architekturneutral portabel schnell parallel(multitheded)
Welcome to java einfach objektorientiert verteilt interpretierend robust secure architekturneutral portabel schnell parallel(multitheded) 1 Vielfalt von Java-Anwendungen Android App App Java Java JavaBeans
MehrObjektorientierung III
Lehrstuhl für Bioinformatik Einführung in die Programmierung für Bioinformatiker Prof. B. Rost, Dr. L. Richter Blatt 10 9.1.2017 Objektorientierung III Aufgabe 10.1. Wir sind doch alle gleich In der Vorlesung
MehrGrundlagen der Programmierung! Kapitel 10: Ein- und Ausgabe! Ziele dieses Kapitels! Datei! Das Problem!
Grundlagen der Programmierung Dr. Christian Herzog Technische Universität München Wintersemester 2014/2015 Ziele dieses Kapitels Sie verstehen das Konzept der Ströme Sie können Klassen wie Reader, Writer,
MehrJAVA KURS COLLECTION
JAVA KURS COLLECTION COLLECTIONS Christa Schneider 2 COLLECTION Enthält als Basis-Interface grundlegende Methoden zur Arbeit mit Collections Methode int size() boolean isempty() boolean contains (Object)
MehrObjektorientierte Programmierung. Kapitel 20: Wrapper-Klassen
20. Wrapper-Klassen 1/27 Objektorientierte Programmierung Kapitel 20: Wrapper-Klassen Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2013/14 http://www.informatik.uni-halle.de/
MehrTagesprogramm
1 2015-12-14 Tagesprogramm Methoden von Object tostring instanceof, class, getclass und Cast equals und hashcode 2 2015-12-14 Methoden von Object Object java.lang.object ist die oberste Oberklasse aller
MehrObjektorientierte Programmierung. Kapitel 20: Wrapper-Klassen
Stefan Brass: OOP (Java), 20. Wrapper-Klassen 1/27 Objektorientierte Programmierung Kapitel 20: Wrapper-Klassen Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2013/14 http://www.informatik.uni-halle.de/
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
Mehr19 Collections Framework
Collection = Containterklasse, die andere Objekte enthält. Inhalte: Schnittstellen Implementierungen Algorithmen Vorteile: Einheitlicher Zugriff auf Containerobjekte. Abstraktion von den Implementierungsdetails.
Mehr