Fortgeschrittene Konzepte
|
|
- Katharina Schuster
- vor 6 Jahren
- Abrufe
Transkript
1 Java: Kapitel 4 Fortgeschrittene Konzepte Programmentwicklung WS 2008/2009 Holger Röder holger.roeder@informatik.uni-stuttgart.de
2 Überblick über Kapitel 4 Autoboxing Erweiterte for-schleife Aufzählungen Ausnahmebehandlung Generische Klasn Reflection Annotationen Garbage Collection 2
3 Autoboxing Zu jedem primitiven Datentyp existiert in Java eine Wrapper-Klas (int: Integer, char: Character, byte: Byte etc.), die den jeweiligen Datentyp in einem Objekt aufnehmen. Autoboxing: primitive Datentypen und Wrapper-Objekte werden bei Bedarf implizit ineinander umgewandelt: Integer i = 3; // Boxing, int -> Integer int j = i; // Unboxing, Integer -> int Damit sind in Verbindung mit variablen Parameterlisten Methoden möglich, die beliebige Parameter beliebigen Typs akzeptieren: public void print(object... o) {... for (int i = 0; i < o.length; i++) System.out.println("Parameter: "+ o[i]); print("hallo",3, 17.2, new Integer(4), 'x', fal); 3
4 Erweiterte for-schleife Seit Java 5 existiert eine erweiterte for-schleife mit folgender Syntax: for (formalerparameter: ausdruck) anweisung; Dabei gilt: formalerparameter ist eine Parameterdeklaration, z. B. String s ausdruck implementiert die Schnittstelle java.lang.iterable (wie z. B. die Listenklasn aus der Standardbibliothek) oder ist ein []-Array String[] texte = new String[3]; texte[0] = "Hallo "; texte[1] = "Welt"; texte[2] = "!"; /* "Neue" Variante (mit Array): */ for(string s: texte) { System.out.print(s); 4
5 Aufzählungen Mit dem Schlüslwort enum können Aufzählungen definiert werden: public enum Farbe { ROT, GELB, GRUEN Aufzählungen sind Klasn, jedes Element einer Aufzählung ist ein Objekt. Farbe f1 = Farbe.GELB; Standard-Methoden erlauben das Arbeiten mit Aufzählungsklasn und Aufzählungsobjekten. int i = f1.ordinal(); // liefert 1 (ROT=0, BLAU=2) String s = f1.tostring(); // liefert "GELB" boolean b = f1.equals(farbe.gelb); // liefert true Farbe f2 = Farbe.valueOf("ROT"); // ok Farbe f3 = Farbe.valueOf("BLAU"); // Exception! 5
6 Aufzählungen in switch-anweisungen Aufzählungen können in switch-anweisungen unterschieden werden: Farbe f1 = Farbe.GELB;... switch (f1) { ca GELB: System.out.println("Farbe ist GELB."); break; ca GRUEN: System.out.println("Farbe ist GRÜN"); break; 6
7 Ausnahmebehandlung: Exceptions In Java werden Ausnahmen (Exceptions) zur Fehlerbehandlung verwendet. Viele Methoden der Java-Standardbibliothek werfen im Fehlerfall eine Exception. Grundsätzlich gilt: Tritt eine Exception auf, muss sie entweder lokal behandelt oder weitergegeben werden. Sonderfall: Ausnahmen vom Typ RuntimeException (z. B. NullPointerException) können, müsn aber nicht behandelt oder weitergegeben werden. Für die lokale Ausnahmenbehandlung können Exceptions in einem (try-)catch-block gefangen werden: try { double d = Double.parDouble("Hallo"); System.out.println("Alles ok!"); // nie erreicht! catch (NumberFormatException e) { System.out.println("Ungültiges Zahlenformat"); 7
8 Behandlung von Exceptions Verschiedene Exceptions können über nacheinander folgende catch- Blöcke gefangen werden. Der Typ der geworfenen Exception wird mit dem Typ der zu fangenden Exception verglichen. Bei Übereinstimmung wird zum jeweiligen catch-block gesprungen. Der (optionale) finally-block wird immer aufgerufen (egal, ob eine Exception bearbeitet wurde oder nicht). try { //... Hier können Exceptions geworfen werden... catch(ioexception e) { System.out.println("IO-Fehler: " + e.getmessage()); catch(exception e) { System.out.println("Fehler: " + e.getmessage()); finally { System.out.println("Programmende"); Anschließend fährt das Programm mit der ersten Anweisung nach dem try-catch-(finally-)-abschnitt fort. 8
9 Weitergabe von Exceptions Wenn die Ausnahmenbehandlung nicht lokal erfolgen soll, können Exceptions an die aufrufende Methode weitergegeben werden. Dazu muss der Methodenkopf mit einer throws-klaul und der Liste aller möglicherwei weitergegebenen Exceptions erweitert werden: import java.io.*;... public String liesein() throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); String eingabe = in.readline(); return eingabe; Wird eine Exception geworfen, wird die an die aufrufende Methode weitergegeben. Weitergegebene Exceptions müsn in der aufrufenden Methode behandelt oder ebenfalls weitergegeben werden. 9
10 Kombination von Behandlung und Weitergabe Lokale Behandlung von Ausnahmen und Weitergabe können kombiniert werden, wenn innerhalb eines catch-blocks die gefangene Exception mit throw weitergegeben wird. public double lieszahl() throws IOException, NumberFormatException {... try { String eingabe = in.readline(); catch (IOException e) { System.out.println("Fehler bei der Eingabe!"); throw e; Zunächst lokale Fehlerbehandlung... dann Weitergabe der Exception 10
11 Eigene Exceptions Auftretende Ausnahmen werden durch Objekte vom Typ Exception (oder einer Unterklas) repräntiert. Eigene Ausnahmen können als Unterklasn der Klas Exception erstellt werden. MeineException.java public class MeineException extends Exception { public int fehlercode;... Exceptions können mit der throw-anweisung geworfen werden: MeineException e = new MeineException(); e.fehlercode = 127; throw e; 11
12 Generische Klasn Generische Klasn (Generics) können verwendet werden, um eine Implementierung, die prinzipiell alle Klasn unterstützt, typsicher auf die Verwendung mit bestimmten Klasn zu beschränken. Beispiel: Datenspeicher für 1 Element IntegerSpeicher.java public class IntegerSpeicher { private Integer element; public void put(integer e) { element = e; public Integer get() { return element; Doppelter Code! StringSpeicher.java public class StringSpeicher { private String element; public void put(string e) { element = e; public String get() { return element; 12
13 Generische Klasn (2) Implementierung als generische Klas: T dient als Platzhalter und wird bei der Deklaration und Initialisierung durch einen konkreten Typ ertzt. Aufruf: Speicher<Integer> i = new Speicher<Integer>(); i.put(new Integer(42)); Speicher<String> s = new Speicher<String>(); s.put("ein String"); Speicher.java public class Speicher<T> { private T element; public void put(t e) { element = e; public T get() { return element; // s.put(new Integer(42)); // unzulässig, nur Strings! 13
14 Generische Klasn Polymorphie Erinnerung: Polymorphie bei normalen Klasn class A {... class B extends A {... // abgeleitete Klas... B b_obj = new B(); A a_obj = b_obj; // zulässig, Polymorphie Eine analoge Zuweisung mit generischen Klasn, die mit Ober- und Unterklasn typisiert sind, ist jedoch nicht zulässig: Speicher<B> b_speicher = new Speicher<B>; Speicher<A> a_speicher = b_speicher; // nicht zulässig! Wäre die letzte Anweisung zulässig, könnte beispielswei folgende Typinkompatibilität auftreten: a_speicher.put(new A()); B obj1 = b_speicher.get(); /* B-Objekt erwartet, aber A-Objekt im Speicher! */ 14
15 Generische Klasn Einschränkungen Die Information über die Typisierung generischer Klasn ist zur Laufzeit nicht bekannt (Type Erasure). Bei der Verwendung gibt es deshalb Einschränkungen. Der instanceof-operator ist bei generischen Klasn nur zur Prüfung der untypisierten generischen Klas erlaubt. if (b_speicher instanceof Speicher) {... // erlaubt! if (b_speicher instanceof Speicher<B>) {... // nicht erlaubt! Ebenso gilt: Parametrisierte Exception-Typen sind nicht erlaubt. Arrays parametrisierter Typen (Speicher<B>[] ) sind nicht erlaubt. 15
16 Generische Klasn Wildcards Die Wildcard? kann bei der Typisierung generischer Klasn anstelle eines konkreten Typs angegeben werden: Speicher<B> b_speicher = new Speicher<B>; Speicher<?> o_speicher = b_speicher; Bei Verwendung der Wildcard? sind Methoden, die einen generisch typisierten Rückgabewert haben, nur noch mit Object typisiert: Object obj2 = o_speicher.get(); // ok, liefert Object B obj3 = o_speicher.get(); // nicht ok! Der Aufruf von Methoden mit generisch typisierten Parametern ist nicht mehr erlaubt: o_speicher.put(new Object()); // nicht zulässig! 16
17 Generische Klasn Bounded Wildcards Gebundene Wildcards (bounded wildcards) erlauben die Typisierung mit der angegebenen Klas oder einer Unterklas: Speicher<B> b_speicher = new Speicher<B>; Speicher<? extends A> a_speicher = b_speicher; Der Aufruf von Methoden mit generisch typisierten Parametern (z. B. Schreiboperationen) ist ebenfalls nicht erlaubt: A obj4 = a_speicher.get(); // Len ok a_speicher.put(new A()); // Schreiben nicht ok! Mit dem Schlüslwort super können gebundene Wildcards mit unteren Grenzen definiert werden: Speicher<? super B> speicher =... /* kann mit B oder Oberklas von B typisiert werden */ 17
18 Generische Methoden Auch einzelne Methoden können Typen generisch vorschreiben: Auswahl.java public class Auswahl { public static <T> T zufall(t arg1, T arg2) { // zufällig einen der beiden Parameter zurückgeben return Math.random() > 0.5? arg1 : arg2;... String s = Auswahl.zufall("Hallo", "Welt"); // ok Integer i = Auswahl.zufall(2, 3); // auch ok Integer i = Auswahl.zufall("Hallo", "Welt"); // Fehler! 18
19 Reflection Das Reflection-API ermöglicht den Umgang mit Klasn und Objekten zur Laufzeit. Dazu gehören etwa: das Laden und Instanziieren von Klasn, der Aufruf von Methoden und der Zugriff auf Attribute. Reflection kommt häufig bei der Entwicklung generischer, hochkonfigurierbarer oder durch Plug-Ins erweiterbarer Anwendungen zum Einsatz (z. B. OR-Datenbank-Mapper etc.) 19
20 Reflection Class-Objekte Die Klas Class repräntiert eine Java-Klas zur Laufzeit und ermöglicht den Zugriff auf Eigenschaften der Klas. Class-Objekte können auf verschiedene Wei erhalten werden: Die Methode getclass() der Klas Object liefert ein pasndes Class-Objekt für das jeweilige Objekt. String s = "Hallo"; Class c = s.getclass(); System.out.println(c.getName()); // Ausgabe: java.lang.string Jede Klas besitzt ein statisches Class-Attribut namens class: Class c = String.class; Die statische Methode Class.forName() liefert das Class- Objekt für die angegebene Klas zurück: Class c = Class.forName("java.lang.String"); Analog zu Class existieren die Klas Method für Methodenzugriff und Field für Attributzugriff. 20
21 Reflection Beispiel public static void printmethods(string classname) throws ClassNotFoundException { Sucht Klas anhand des Klasnnamens Class c = Class.forName(className); for (Method m : c.getmethods()) { System.out.print(m.getReturnType(). getsimplename() + " "); System.out.print(m.getName() + "("); String delim = ""; for (Class param : m.getparametertypes()) { System.out.print(delim); System.out.print(param.getSimpleName()); delim = ", "; System.out.println(")"); Liefert alle Methoden der Klas 21
22 Reflection Beispiel (Ausgabe) printmethods("java.lang.string"); liefert int hashcode() int compareto(string) int compareto(object) int indexof(int, int) int indexof(int) int indexof(string) int indexof(string, int) boolean equals(object) String tostring() char charat(int) int codepointat(int) int codepointbefore(int) int codepointcount(int, int) int comparetoignoreca(string) String concat(string) boolean contains(charsequence) boolean contentequals(stringbuffer) boolean contentequals(charsequence)... 22
23 Annotationen Annotationen sind Metadaten, die im Quellcode dokumentiert werden. Sie können zum Kommentieren des Codes verwendet werden, sind aber anders als normale Kommentare Teil des Syntaxbaums. Es existiert eine Reihe vordefinierter Annotationen, z. kennzeichnet Klas/Methode als kennzeichnet überlagerte Methoden Beispiel: public class Person { public double berechnegehalt() {... public class Angestellter extends Person public double berechngehalt() {... Compiler meldet Fehler: die definierte Methode überlagert keine Methode der Oberklas! 23
24 Eigene Annotationen Die Definition eigener Annotationstypen erfolgt ähnlich wie die Definition von Schnittstellen. Damit Annotationen zur Laufzeit verfügbar sind, muss die Annotationsklas lbst entsprechend annotiert import java.lang.annotation.*; // für Reflection (Zugriff zur Autor { String vorname(); // Elemente des Annotationstyps String nachname(); String firma() default "Firma XYZ"; // Standardwert 24
25 Eigene Annotationen (2) Nach der Definition können eigene Annotationen verwendet werden. Die Elemente der Annotation werden über Schlüsl-Wert-Paare zugewien. public class Person (vorname = "Carl", nachname = "Coder") public double berechnegehalt() {... 25
26 Annotationen und Reflection Annotationen können per Reflection abgefragt werden: Person p = new Person(); for (Method m : p.getclass().getmethods()) { if (m.isannotationprent(autor.class)) { Autor autor = m.getannotation(autor.class); System.out.println("Methode '" + m.getname() + "' entwickelt von " + autor.vorname() + " " + autor.nachname()); Ausgabe: Methode 'berechnegehalt' entwickelt von Carl Coder 26
27 Garbage Collection in Java Java besitzt ein automatisches Speichermanagement. Speicher muss nicht explizit allokiert oder freigegeben werden. Objekte, die nicht mehr referenziert werden, werden automatisch (irgendwann) vom Garbage Collector gelöscht. Der Garbage Collector läuft mit niedriger Priorität im Hintergrund. Person carl = new Person(); // 1 Referenz auf das Objekt Person p1 = carl p1 = null; carl = null; // jetzt 2 Referenzen auf das Objekt // nur noch 1 Referenz auf das Objekt // Objekt ohne Referenz Vor dem Löschen eines Objekts wird jeweils die Destruktor-Methode finalize() des Objekts aufgerufen. Der Garbage Collector kann explizit gestartet werden: System.gc(); 27
! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.
! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.4 Exceptions - 1 - Ausnahmen (Exceptions( Exceptions) Treten auf, wenn zur
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)
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,
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
MehrKapitel 10. Programmierkurs. Grundlagen von Exceptions Behandlung von Exceptions
Kapitel 10 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Exceptions Behandlung von Exceptions Der finally-block catch or throw WS 07/08 1/ 23 2/ 23 Grundlagen von Exceptions
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
MehrAusnahmebehandlung. Ausnahmen werfen (auslösen) Eigene Ausnahmen definieren. Ausnahmen abfangen. Ausnahmen definieren
Ausnahmebehandlung Ausnahmen werfen (auslösen) Eigene Ausnahmen definieren Ausnahmen abfangen Ausnahmen definieren Sinnvolle Verwendung von Ausnahmen Informatik II: Objektorientierte SW-Entwicklung, Algorithmik,
MehrKapitel 10. Programmierkurs. Grundlagen von Exceptions Behandlung von Exceptions
Kapitel 10 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Exceptions Behandlung von Exceptions Verschiedene Exceptions Mehrere catch-anweisungen Der finally-block WS
MehrJava Einführung Exception Handling. Kapitel 17
Java Einführung Exception Handling Kapitel 17 Inhalt Was sind Exceptoins? Wie werden sie ausgelöst? Wie kann man Exceptions behandeln? Erweiterung von Exceptions Spezialfall IO 2 Ausnahmezustände Im Ablauf
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
MehrSystem.out.println("TEXT");
Inhaltsübersicht - Erstes Beispiel - Datentypen - Ausdrücke und Operatoren - Schleifen / Bedinungen - Struktogramme - Grundgerüst eines Programms in JAVA - Einlesen von Daten Erstes Beispiel public class
MehrThemen 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
MehrGrundlagen der Programmierung Prof. H. Mössenböck. 16. Ausnahmen (Exception Handling)
Grundlagen der Programmierung Prof. H. Mössenböck 16. Ausnahmen (Exception Handling) Motivation Fehler können nicht immer dort behandelt werden, wo sie auftreten void p() { q(); Lösung void q() { r();
MehrEinstieg 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
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
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
MehrKlausur Grundlagen der Programmierung
Klausur Grundlagen der Programmierung Aufgabenstellung: Martin Schultheiß Erreichte Punktzahl: von 60 Note: Allgemeine Hinweise: Schreiben Sie bitte Ihren Namen auf jedes der Blätter Zugelassene Hilfsmittel
MehrProblemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests.
Universität Osnabrück 1 Problemstellung 3 - Objektorientierte Programmierung in Java Vorlesung 24: Reflection 1 SS 2006 Prof. Dr. Frank M. Thiesing, FH Osnabrück Um ein Objekt anzulegen, eine seiner Methoden
MehrJavakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 1 - Variablen und Kontrollstrukturen main Methode Startpunkt jeder Java Anwendung String[] args ist ein Array aus Parametern, die beim Aufruf über die Kommandozeile
MehrProgrammieren 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
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
MehrSpracherweiterungen in Java 5
Spracherweiterungen in Java 5 Dennis Giffhorn Lehrstuhl für Programmierparadigmen Universität Karlsruhe 17. April 2008 Spracherweiterungen in Java 5 Generics (s. Vorlesung) Annotations Enumerations Methoden
Mehr1 Fehler-Objekte: Werfen, Fangen, Behandeln
1 Fehler-Objekte: Werfen, Fangen, Behandeln Tritt während der Programm-Ausführung ein Fehler auf, wird die normale Programm-ausführung abgebrochen und ein Fehler-Objekt erzeugt (geworfen). Die Klasse Throwable
MehrKapitel 9: Klassen und höhere Datentypen. Selektoren
Selektoren Üblicherweise erlaubt man keinen (direkten) öffentlichen (public) Zugang zu Objektvariablen mehr Kontrolle über Zugang interne Details besser verborgen Statt dessen: Zugriff auf privates Feld
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
MehrFH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen
5 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Referenzen Beispiel an der einfachen Klasse Walze: public class Walze { int id; public Walze(int id) { this.id = id; Verwenden
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
MehrExceptions. CoMa-Übung VII TU Berlin. CoMa-Übung VII (TU Berlin) Exceptions / 1
Exceptions CoMa-Übung VII TU Berlin 7.11.013 CoMa-Übung VII (TU Berlin) Exceptions 7.11.013 1 / 1 Themen der Übung 1 Compilezeit- und Laufzeitfehler Exceptions 3 Try-Catch-Finally CoMa-Übung VII (TU Berlin)
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
MehrC# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services
C# - Einführung in die Programmiersprache Methoden Leibniz Universität IT Services 02.07.12 Methoden... sind Subroutinen in einer Klasse. können einen Wert an den Aufrufer zurückgeben. verändern die Eigenschaften
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
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
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,
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
MehrEINFÜHRUNG IN DIE PROGRAMMIERUNG
EINFÜHRUNG IN DIE PROGRAMMIERUNG FORTGESCHRITTENE KONZEPTE Tobias Witt 26.03.2014 tobias.witt@hhu.de 25.12.01.30 Bürozeiten: 09 Uhr - 12 Uhr FEHLERBEHANDLUNG KLASSISCHER ANSATZ Fehlercode als Rückgabewert
Mehr1 Organisatorisches. 2 Compilezeit- und Laufzeitfehler. 3 Exceptions. 4 Try-Catch-Finally
Themen der Übung CoMa-Übung VI 1 Organisatorisches Compilezeit- und Laufzeitfehler 3 Try-Catch-Finally TU Berlin 8.11.01 Bewertung der OA 5 fehlerhaft, Madeleine arbeitet dran CoMa-Übung VI (TU Berlin)
MehrProgrammieren I. Fehlerbehandlung Exceptions. Heusch 2. Bd, 3 Ratz 10. Institut für Angewandte Informatik
Programmieren I Fehlerbehandlung Exceptions Heusch 2. Bd, 3 Ratz 10 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Exceptions und ihre Behandlung Exception - Ausnahmebedingung
MehrProperties und Proxies
g n årà Dr. Winfried Grünewald service@grnwld.de Properties und Proxies Dr. Winfried Grünewald, Stutensee 2011 Version 0.9 2/10 1 Einleitung Die Java Entwicklungsumgebung bietet mit den Properties-Dateien
MehrObjektorientierung (OO)
Objektorientierung (OO) Objekte haben Zustände (oder Eigenschaften, Attribute) und Verhalten Zustände: Objektvariablen (in Java auch fields) Verhalten (oder Aktionen): Methoden (methods, Funktionen) members
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
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
MehrAusnahmen. Exceptions. Definition Ausnahmen erzeugen Ausnahmen abfangen Ausnahmen weiterleiten. Dr. Beatrice Amrhein
Ausnahmen Exceptions Definition Ausnahmen erzeugen Ausnahmen abfangen Ausnahmen weiterleiten Dr. Beatrice Amrhein Definition 2 Definition: Ausnahme (Exception) In C# werden Fehler, die zur Laufzeit im
MehrCoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7.
CoMa 04 Java II Paul Boeck Humboldt Universität zu Berlin Institut für Mathematik 7. Mai 2013 Paul Boeck CoMa 04 7. Mai 2013 1 / 13 Verzweigungen Wenn-Dann Beziehungen if (BEDINGUNG) { else if (BEDINGUNG2)
MehrInterfaces 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
MehrTheorie zu Übung 8 Implementierung in Java
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept
MehrAnweisungen zur Ablaufsteuerung
Anweisungen zur Ablaufsteuerung if-else switch while do-while for Ausdrücke Ein Ausdruck ist eine Folge von Variablen, Operatoren und Methodenaufrufen, der zu einem einzelnen Wert ausgewertet wird. Operanden
Mehr9. Fehler und Ausnahmen Grundlagen der Programmierung 1 (Java)
9. Fehler und Ausnahmen Grundlagen der Programmierung 1 (Java) Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 13. Dezember 2005 Einordnung im Kontext der
Mehr15 Fehlerobjekte: Werfen, Fangen, Behandeln
Tritt während der Programm-Ausführung ein Fehler auf, wird die normale Programm-ausführung abgebrochen und ein Fehlerobjekt erzeugt (geworfen). Die Klasse Throwable fasst alle Arten von Fehlern zusammen.
Mehr15 Fehlerobjekte: Werfen, Fangen, Behandeln. Idee. Fehlerklassen. Fehlerklassen
Idee Tritt während der Programm-Ausführung ein Fehler auf, wird die normale Programm-ausführung abgebrochen und ein Fehlerobjekt erzeugt (geworfen). Die Klasse Throwable fasst alle Arten von Fehlern zusammen.
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,
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
Mehr15 Fehlerobjekte: Werfen, Fangen, Behandeln
Tritt während der Programm-Ausführung ein Fehler auf, wird die normale Programm-ausführung abgebrochen und ein Fehlerobjekt erzeugt (geworfen). Die Klasse Throwable fasst alle Arten von Fehlern zusammen.
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
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
MehrJava-Schulung Grundlagen
Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings
MehrProgrammieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer)
Programmieren I Grundlagen von JAVA Dr. Klaus Höppner Hello World in JAVA Hochschule Darmstadt WS 2007/2008 Elementare Datentypen 1 / 17 2 / 17 Eigenschaften von JAVA Prinzipieller Ablauf Plattform-und
MehrProgrammiertechnik Erweiterungen in Java 5
Programmiertechnik Erweiterungen in Java 5 Prof. Dr. Oliver Haase! Oliver Haase Hochschule Konstanz!1 Überblick Mit Java 5 wurde Java um einige neue Konstrukte erweitert, z.b.:! vereinfachte For-Schleifen
MehrEin String ist in Java eigentlich eine Klasse, wir können ihn aber zunächst als Datentyp betrachten, der zur Speicherung von Zeichenketten dient.
Strings Ein String ist in Java eigentlich eine Klasse, wir können ihn aber zunächst als Datentyp betrachten, der zur Speicherung von Zeichenketten dient. Beispiel: String zeile = "Cusanus-Gymnasium Wittlich";
MehrDas erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.
Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen
MehrGrundlagen der Fehlerbehandlung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 06: Ausnahme- und Fehlerbehandlung in Java.
Universität Osnabrück 1 Grundlagen der Fehlerbehandlung 3 - Objektorientierte Programmierung in Java Vorlesung 06: Ausnahme- und Fehlerbehandlung in Java SS 2006 Prof. Dr. F.M. Thiesing, FH Osnabrück Wenn
MehrTag 5. Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme)
Tag 5 Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Methoden Deklaration
MehrWie 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
MehrJava - Fehler im Code. Leibniz Universität IT Services Anja Aue
Java - Fehler im Code Leibniz Universität IT Services Anja Aue Softwarefehler Programmierfehler entstehen beim Schreiben des Programmcodes. Logische Fehler können durch Denkfehler bei der Umsetzung der
MehrProgrammieren I + II Regeln der Code-Formatierung
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme WS 2012/2013, SS 2013 Programmieren I + II Regeln der Code-Formatierung Die hier vorgestellten
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
MehrKapitel 3. Programmierkurs. Arten von Anweisungen. 3.1 Was sind Anweisungen?
Kapitel 3 Programmierkurs Birgit Engels, Anna Schulze ZAIK Universität zu Köln Anweisungen, Variablen Arten von Anweisungen Variablen Konstanten Höchste Zeit für ein Programm Gültigkeitsbereich von Variablen
MehrJava für Computerlinguisten
Java für Computerlinguisten 2. Objektorientierte Programmierung Christian Scheible Institut für Maschinelle Sprachverarbeitung 28. Juli 2009 Christian Scheible Java für Computerlinguisten 28. Juli 2009
MehrOCP Java SE 8. Lambda
OCP Java SE 8 Lambda Lambda-Ausdruck sieht ähnlich wie eine Deklaration einer Methode ohne Name und Ergebnistyp aus (a, b) -> b.compareto(a) Lambda Vor Java 8 Ausführbarer Programmcode ( Verhalten ) nur
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
MehrÜberblick. Java 5. Java 6. Java 7. Referenzen. neue Sprachfeatures Erweiterungen Klassenbibliothek. Erweiterungen Klassenbibliothek
Neuerungen in Java 5/6/7 Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen Klassenbibliothek Java 7 Java wird Open Source Referenzen Stefan Bühler für InfoPoint
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
MehrWie entwerfe ich ein Programm?
Wie entwerfe ich ein Programm? Welche Objekte brauche ich? Flussdiagramme für Programmablauf Vorcode Testcode Hauptcode Wir spielen Lotto! Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 5 +
MehrVorlesung 10. Sitzung Grundlegende Programmiertechniken
Vorlesung 10. Sitzung Grundlegende Programmiertechniken Wintersemester 2007/2008 Dozent Nino Simunic M.A. Computerlinguistik, Campus DU Grundlegende Programmiertechniken, WS 2007/2008 Objektorientierte
MehrJava I Vorlesung 6 Referenz-Datentypen
Java I Vorlesung 6 Referenz-Datentypen 7.6.2004 Referenzen this, super und null Typkonvertierung von Referenztypen Finale Methoden und Klassen Datentypen in Java In Java gibt es zwei Arten von Datentypen:
Mehrihrer Klasse benötigt die Funktion einfuegenan:
Aufgabe 11 Verkettete Listen Entwickeln Sie einen Algorithmus, der Ihnen das Einfügen eines Elementes an einer beliebigen Position innerhalb der Liste erlaubt. Der Algorithmus soll beispielsweise erlauben,
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 anlegen und Objekte erzeugen
Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a
MehrProblemstellung. Object1:Klasse1. Object2:Klasse2 att1: Klasse1 att2: 9. att1: att2: 17. Klasse1 att1 att2 Klasse2 att1 att2
Problemstellung Objekt mit aggregierten Objekten: att1: att2: 17 Object1:Klasse1 Object2:Klasse2 att1: Klasse1 att2: 9 serialisiert als Datei: Klasse1 att1 att2 Klasse2 att1 att2 -Speicherung von Objekten
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
MehrVariablen. int Flugzeug. float. I write code Hund. String. long. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel
4213 Variablen 17.834 float Flugzeug 36812736294 I write code Hund long String Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 3 + 4 1 Variablen sind wie Becher. Sie speichern etwas. // Variablen
Mehr3. Java - Sprachkonstrukte I
Namen und Bezeichner Ein Programm (also Klasse) braucht einen Namen 3. Java - Sprachkonstrukte I Namen und Bezeichner, Variablen, Zuweisungen, Konstanten, Datentypen, Operationen, Auswerten von Ausdrücken,
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;
MehrJava Reflection. Andreas Lochbihler. 15. Mai Lehrstuhl Programmierparadigmen Universität Karlsruhe
Java Reflection Andreas Lochbihler Lehrstuhl Programmierparadigmen Universität Karlsruhe 15. Mai 2008 Was ist Reflection? Ein Paket (package) von Interfaces und Klassen, die dem Programm zur Laufzeit Zugriff
MehrWo und wie lange leben Objekte? globale Objekte lokale Objekte dynamische Objekte
Wo und wie lange leben Objekte? globale Objekte lokale Objekte dynamische Objekte entstehen durch... globale Objektvereinbarung: T o; blocklokale Objektvereinbarung: {.. T o;.. durch expliziten Aufruf
MehrJava: Kapitel 2. Grundlagen. Programmentwicklung WS 2008/2009. Holger Röder
Java: Kapitel 2 Grundlagen Programmentwicklung WS 2008/2009 Holger Röder holger.roeder@informatik.uni-stuttgart.de Überblick über Kapitel 2 Grundelemente der Programmiersprache Java Bezeichner, Schlüslworte,
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
MehrProbeklausur: Programmierung WS04/05
Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,
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
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
MehrProgrammieren I + II Regeln der Code-Formatierung
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme WS 2016/2017, SS 2017 Programmieren I + II Regeln der Code-Formatierung In diesem Dokument finden
MehrII.1.1. Erste Schritte - 1 -
! 1. Grundelemente der Programmierung! 2. Objekte, Klassen und Methoden! 3. Rekursion und dynamische Datenstrukturen! 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1
MehrII. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. )
Technische Informatik für Ingenieure (TIfI) WS 2006/2007, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Rekursion Datenstrukturen Merge S ( split, s, merge ) Beispiel:
MehrEine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.
Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,
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
MehrGrundlagen der Programmierung Teil1 Einheit III Okt. 2010
Grundlagen der Programmierung Teil1 Einheit III - 22. Okt. 2010 GDP DDr. Karl D. Fritscher basierend auf der Vorlesung Grundlagen der Programmierung von DI Dr. Bernhard Pfeifer Einschub Bevor wir mit den
Mehr7. Java Fehler und Ausnahmen
Fehler und Ausnahmen in Java 7. Java Fehler und Ausnahmen Fehler und Ausnahmen unterbrechen die normale Programmausführung abrupt und stellen eine nicht geplantes Ereignis dar. Ausnahmen sind böse, oder
MehrInstitut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke
Java 2 Markus Reschke 07.10.2014 Datentypen Was wird gespeichert? Wie wird es gespeichert? Was kann man mit Werten eines Datentyps machen (Operationen, Methoden)? Welche Werte gehören zum Datentyp? Wie
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
MehrSoll die Programm-Ausführung nicht beendet werden, muss der Fehler abgefangen werden. NumberFormatException
Soll die Programm-Ausführung nicht beendet werden, muss der Fehler abgefangen werden. Beispiel: NumberFormatException public class Adding extends MiniJava { public static void main(string[] args) { int
MehrJava - Programmierung - Prozedurale Programmierung 1
Java - Programmierung - Prozedurale Programmierung 1 // elementare Datentypen public class el_dt public static void main(string args []) byte b = 127; short s = 32767; int i = 2147483647; long l = 9223372036854775807L,
Mehr