Ausnahmebehandlung OOPM, Ralf Lämmel

Größe: px
Ab Seite anzeigen:

Download "Ausnahmebehandlung OOPM, Ralf Lämmel"

Transkript

1 Schon mal einen Blue Screen gesehen? Ausnahmebehandlung OOPM, Ralf Lämmel

2 927 Beispiele für Ausnahmesituationen Programmfehler precondition failed Unzulässige Nutzereingabe bad url Nichtverfügbarkeit von Ressourcen connection lost Verausgabung von Ressourcen stack overflow

3 928 Verhalten eines Programmes bei unzulässigen Eingaben $ java Program = 7 $ java Program 3 Exception in thread "main" java.lang.arrayindexoutofboundsexception: 1 at Program.main(Program.java:12) $ java Program 3 vier Exception in thread "main" java.lang.numberformatexception: For input string: "vier" at java.lang.numberformatexception.forinputstring(numberformatexception.java:48) at java.lang.integer.parseint(integer.java:447) at java.lang.integer.parseint(integer.java:497) at Program.main(Program.java:12) Können wir uns bessere Fehlermeldungen vorstellen?

4 929 Verhalten des Programmes mit Ausnahmebehandlung $ java Program = 7 $ java Program 3 Incorrect number of arguments $ java Program 3 vier Argument(s) not a number

5 930 Quellen für Ausnahmesituationen im Programm Haben Sie noch eine weitere Idee für eine Ausnahmesituation? public class Program { public static void main(string[] args) { int value1 = Integer.parseInt(args[0]); int value2 = Integer.parseInt(args[1]); int sum = value1 + value2; Feldzugriff kann scheitern Konvertierung in Zahl kann scheitern System.out.println(value1 + " + " + value2 + " = " + sum); Illustrationen für Ausnahmebehandlung siehe Repository: idioms.errorhandling

6 931 Ansatz der Ausnahmebehandlung public class Program { public static void main(string[] args) { Teste dass args.length == 2 int value1 = Integer.parseInt(args[0]); int value2 = Integer.parseInt(args[1]); int sum = value1 + value2; Behandle nichterfolgreiche Konvertierung System.out.println(value1 + " + " + value2 + " = " + sum);

7 932 Allgemeine Fragestellungen 1. Was ist ein Fehler bzw. eine Ausnahme? 2. Wie wissen wir, dass ein Fehler bzw. eine Ausnahme auftritt? 3. Wie weiß ein Programm dies? 4. Wie reagiert ein Programm auf einen Fehler bzw. eine Ausnahme? 5. Kann das Programm sich erholen?

8 933 Fehler Der Begriff ist hochgradig überladen. Definition: ein unerlaubter Programmzustand Beispiel: das Beispielprogramm darf nicht in dem Zustand sein, dass es in die main-funktion eintritt wobei nur 1 Eingabewert ansteht. Naives Modell der Fehlervermeidung: Die Spezifikation von Methoden, Klassen und Programmen definiert was erlaubte Programmzustände sind. Jede Verwendung der Methoden, Klassen und Programmen wird im Voraus auf die Einhaltung der Spezifikation überprüft.

9 934 Ziele der Fehlerbehandlung Vermeidung von inkonsistentem Verhalten Rückkehr zu früherem, sicherem Programmpunkt Kontrollierte Beendung des Programmes Sicherung von Ergebnissen Ausgabe von hilfreichen Fehlermeldungen

10 935 Techniken zur Fehlerbehandlung Keine Behandlung Terminierung des Programmes Verwendung eines globalen Fehlerflags Verwendung eines speziellen Rückgabewertes Vereinbarung einer speziellen Funktion Verwendung von Transaktionsmechanismen Ausnahmebehandlung mit try/catch

11 936 Techniken zur Fehlerbehandlung Keine Behandlung Terminierung des Programmes Verwendung eines globalen Fehlerflags Verwendung eines speziellen Rückgabewertes Vereinbarung einer speziellen Funktion Verwendung von Transaktionsmechanismen Ausnahmebehandlung mit try/catch

12 937 Verwendung eines globalen Fehlerflag Wir erfinden java.lang.integer.error. Wir ignorieren das Problem der Feldgröße im folgenden. int value1 = Integer.parseInt(args[0]); boolean error = Integer.error; int value2 = Integer.parseInt(args[1]); error = Integer.error; Abfrage des Fehlerflags nach jedem Aufruf if (!error) { int sum = value1 + value2; System.out.println(value1 + " + " + value2 + " = " + sum); else { System.err.println("Argument(s) not a number"); System.exit(-1); Das Abfragen des Flags kann leicht vergessen werden.

13 938 Techniken zur Fehlerbehandlung Keine Behandlung Terminierung des Programmes Verwendung eines globalen Fehlerflags Verwendung eines speziellen Rückgabewertes Vereinbarung einer speziellen Funktion Verwendung von Transaktionsmechanismen Ausnahmebehandlung mit try/catch

14 939 Verwendung eines speziellen Rückgabewertes Wir ändern den Ergebnistyp von parseint von int nach Integer. (Integer ist ein Referenztyp für int.) Wir interpretieren null als Fehler. Integer value1 = Integer.parseInt(args[0]); boolean error = value1 == null; Integer value2 = Integer.parseInt(args[1]); error = value2 == null; Interpretiere null als Fehler if (!error) { int sum = value1 + value2; System.out.println(value1 + " + " + value2 + " = " + sum); else { System.err.println("Argument(s) not a number"); System.exit(-1); Fehler können weiterhin übersehen werden oder der Fehlerwert kann fehlinterpretiert werden. Auch verlangt diese Technik häufig Typänderungen.

15 940 Techniken zur Fehlerbehandlung Keine Behandlung Terminierung des Programmes Verwendung eines globalen Fehlerflags Verwendung eines speziellen Rückgabewertes Vereinbarung einer speziellen Funktion Verwendung von Transaktionsmechanismen Ausnahmebehandlung mit try/catch

16 941 Vereinbarung einer speziellen Funktion Illustration für Cobol; Vereinbarung eines Fehlerparagraphen für bestimmte Dateifehler. DECLARATIVES. HANDLE-FILE-ERRORS SECTION. USE AFTER ERROR ON ACCOUNT-FILE. HANDLE-ACOUNT-ERROR. MOVE ACOUNT TO PANIC-RESOURCE. MOVE FILE ERROR TO PANIC-HEADER. MOVE FILE-STATUS TO PANIC-CODE. GO TO PANIC-STOP. END-DECLARATIVES. Diese Technik verlangt Sprachunterstützung. Ausnahmen (siehe nachfolgend) sind allgemeiner.

17 942 Techniken zur Fehlerbehandlung Keine Behandlung Terminierung des Programmes Verwendung eines globalen Fehlerflags Verwendung eines speziellen Rückgabewertes Vereinbarung einer speziellen Funktion Verwendung von Transaktionsmechanismen Ausnahmebehandlung mit try/catch

18 943 Ausnahmebehandlung mit try/catch try { int value1 = Integer.parseInt(args[0]); int value2 = Integer.parseInt(args[1]); int sum = value1 + value2; System.out.println(value1 + " + " + value2 + " = " + sum); catch (NumberFormatException e) { System.err.println("Argument(s) not a number"); System.exit(-1);

19 944 Der OO-Ansatz: Ausnahmen Ausnahme: ein Ereignis während der Ausführung des Programms welches zur Unterbrechung des regulären Ablaufs führt. Java-Repräsentation einer Ausnahme: Objekte der Klasse Throwable oder deren Unterklassen. Werfen einer Ausnahme: Bei der Feststellung eines Fehlers wird (vom Laufzeitsystem oder vom Programm) ein Ausnahmeobjekt konstruiert und an das Laufzeitsystem zur Behandlung übergeben.

20 945 Vom Programm geworfene Ausnahme public class Program { Parameter für Diagnose. public static void main(string[] args) { throw new RuntimeException("Don t call main!"); Ein konkreter Ausnahmetyp

21 946 Vordefinierte Ausnahmeklassen Ausnahmen werden durch Klassen in einer Vererbungshierarchie organisiert.

22 947 Wichtige Unterklassen von Throwable Error Klasse und Unterklassen: Kritischer Fehler von dem kaum zu erwarten ist, dass die Applikation ihn behandeln kann. Virtual Machine Error Exception Klasse und Unterklassen: Mögliche Ausnahme in der normalen Programmausführung. Solche Ausnahmen können behandelt werden. IOException NullPointerException

23 948 Ausnahmen des Laufzeitsystems IndexOutOfBoundsException: Der Index bei einem Feldzugriff ist nicht im zulässigen Bereich. ArrayStoreException: Der Typ des Objektes bei einem schreibenden Feldzugriff ist nicht zulässig. NullPointerException: Ein Feldzugriff oder ein Methodenaufruf auf null anstatt einem Objekt. SecurityException: Der Security Manager weist einen Verstoss gegen die Sicherheitspolitik ab....

24 949 Sprachunterstützung für Ausnahmebehandlung try {... // Anweisungen die Ausnahmen werfen könnten catch(ausnahmetyp name) {... // Anweisungen welche die Ausnahme behandeln

25 950 Ausnahmebehandlung mit try/catch try { int value1 = Integer.parseInt(args[0]); int value2 = Integer.parseInt(args[1]); int sum = value1 + value2; System.out.println(value1 + " + " + value2 + " = " + sum); catch (NumberFormatException e) { System.err.println("Argument(s) not a number"); System.exit(-1);

26 951 Sprachunterstützung für Ausnahmebehandlung einschließlich des finally-blockes try {... // Anweisungen catch (AusnahmeTyp name) {... // Anweisungen finally {... // Anweisungen try-block Keine Ausnahme finally- Block Ausnahme catch- Block Der catch-block ist anwendbar für eine Ausnahme a wenn der Typ von a zuweisungskompatibel mit AusnahmeTyp ist. Der finally-block wird auch für den Fall ausgeführt, dass der catch-block nicht anwendbar ist oder der catch oder try-block continue oder break benutzt.

27 952 Mehrere Catch-Klauseln try { catch (AusnahmeTyp1 name1) { catch (AusnahmeTyp2 name2) { finally { Klauseln werden in Definitionsreihefolge geprüft. Speziellere Ausnahmetypen sind zuerst anzugeben!

28 953 Ein Tabu-Idiom try {... catch (Exception x) { Konsumiert alle Ausnahmen. Behandelt keine Ausnahmen. Verursacht eventuell schwierige Folgefehler.

29 954 Propagierung von Ausnahmen Innerhalb von Hierarchien von Throw-Blöcken zum unmittelbar umfassenden throw-block Im Aufrufkeller zum nächsten Aufruf mit einem Handler

30 955 Illustration für Propagierung public class Program { public static void a() { b(); public static void b() { c(); public static void c() { throw new RuntimeException("Safe Our Souls!"); public static void main(string[] args) { try { a(); catch (RuntimeException e) { e.printstacktrace(); java.lang.runtimeexception: Safe Our Souls! at Program.c(Program.java:9) at Program.b(Program.java:6) at Program.a(Program.java:3) at Program.main(Program.java:13)

31 956 Stack trace Ausnahmetyp Parameter der Ausnahme java.lang.runtimeexception: Safe Our Souls! at Program.c(Program.java:9) at Program.b(Program.java:6) at Program.a(Program.java:3) at Program.main(Program.java:13) Methode der Behandlung

32 957 Aufrufkeller und Ausnahmebehandlung (für ein neues Szenario) Methode reicht Ausnahme durch Methode behandelt Ausnahme Methode mit Ausnahme Methode ohne Exception handler Methode mit Exception handler Methodenaufruf Methodenaufruf Methode wirft Ausnahme Methode ist unbehelligt main Methodenaufruf

33 958 Wichtige Regeln Konsumiere nur die Ausnahmen, die Du auch behandelst (behandeln kannst). Wenn sich eine Ausnahme als nicht behandelbar herausstellt, nachdem sie bereits abgefangen wurde, dann muss sie erneut geworfen werden. Verwende Klassenvererbung um ein System von Ausnahmen in einer Hierarchie zu organisieren.

34 959 Wann sollte man eine Ausnahme werfen anstatt einfach zurückzukehren? Pro Ausnahmewurf Es handelt sich um eine wirkliche Ausnahmesituation. Der Aufrufer sollte das Problem nicht ignorieren können. Die Klasse wäre sonst instabil oder inkonsistent. Con Ausnahmewurf Das Problem kann allgemein lokal behoben werden.

35 960 Ein weiteres Beispiel: Abhebung vom Konto Ausnahmesituationen Betrag ist negativ Grundlegendes Problem (als Folge eines Bedienfehlers oder einer Vertragsverletzung) IllegalArgumentException Betrag überzieht Konto OverdraftException Anwendungsspezifisches Problem, welches behandelt werden sollte.

36 961 Abhebung vom Konto mit Überziehungskontrolle /** * Withdraw some money from account. * Refuse negative amounts as nonsense. * Throw an exception if an attempt is made to overdraw. */ public void withdraw(float amount) { // Precondition if (amount < 0) throw new IllegalArgumentException(); if (balance < amount) throw new OverdraftException(); Vordefinierte Ausnahmeklasse balance -= amount; Programm-definierte Ausnahmeklasse

37 962 Programm-definierte Ausnahmenklassen public class OverdraftException extends RuntimeException { Unterklassen von Exception Konstruktoren Standardkonstruktor Konstruktor mit String-Parameter ( Fehlermeldung ) Weiterer Zustand Daten für Handler Für fortgeschrittene Szenarien

38 963 Verwendung von Zusicherungen vs. Ausnahmen public void withdraw(float amount) { // Precondition assert!( amount < 0 balance < amount); Verletzten der Vorbedingung führt zum Werfen einer Ausnahme AssertionError. balance -= amount;

39 964 Verwendung von Zusicherungen vs. Ausnahmen public void withdraw(float amount) { // Precondition if (amount < 0) throw new IllegalArgumentException(); if (balance < amount) throw new OverdraftException(); Spezifischere Ausnahme als AssertionError balance -= amount; Wir werden zeigen, dass wir den Aufrufer zur Behandlung zwingen wollen und können!

40 965 Zwang zur Ausnahmebehandlung Gedankenexperiment Was wäre wenn wir Aufrufer von withdraw zur Ausnahmebehandlung ermutigen ( erzwingen ) wollen -- soweit es den Versuch der Kontenüberziehung angeht? Ein solcher Versuch ist schließlich eine Ausnahmesituation, auf welche das Programm vorbereitet sein sollte.

41 966 Wir wollen dieses Programm verbieten. public static void transfer( Account from, Account to, float amount) { to.deposit(amount); from.withdraw(amount); Der Compiler (das Typsystem) soll den Programmierer zwingen, den möglichen Fehler zu behandeln.

42 Verwendung geprüfter Ausnahmen public class OverdraftException extends RuntimeException { Ungeprüfte Ausnahmen Sind von RuntimeException abgeleitet Müssen nicht in Methodensignatur spezifiziert werden Gelten eher als nicht reparierbar Geprüfte Ausnahmen Sind nicht von RuntimeException abgeleitet Müssen in Methodensignatur spezifiziert werden Sollten von der Anwendung behandelt werden Änderung unserer ursprünglichen Ausnahmeklasse (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 967

43 968 Dieses Programm wird abgewiesen. public static void transfer( Account from, Account to, float amount) { to.deposit(amount); from.withdraw(amount); Wir müssen die Ausnahme OverdraftException entweder deklarieren oder behandeln.

44 969 Eine Behandlung innerhalb der Methode transfer ist nicht offensichtlich. public static void transfer( Account from, Account to, float amount) { try { from.withdraw(amount); to.deposit(amount); catch (OverdraftException o) { //... but what to do?

45 970 Die Behandlungspflicht ergeht an Aufrufer. public static void transfer( Account from {, Account to, float amount) throws OverdraftException from.withdraw(amount); to.deposit(amount); Die mögliche Ausnahme wird explizit deklariert. Der Compiler (das Typsystem) soll den Programmierer wenigstens dazu zwingen, die Ausnahme zu deklarieren.

46 971 Deklaration von werfbaren Ausnahmen /** * Withdraw some money from account. * Refuse negative amounts as nonsense. * Throw an exception if an attempt is made to overdraw. */ public void withdraw(float amount) { // Precondition if (amount < 0) throws OverdraftException throw new IllegalArgumentException(); if (balance < amount) throw new OverdraftException(); IllegalArgumentExceptio n ist eine ungeprüfte Ausnahmeklasse und muss deswegen nicht deklariert werden. balance -= amount; Der Compiler (das Typsystem) verlangt die throws-deklaration (im Falle einer geprüften

47 972 Geprüft oder ungeprüft? Sun s (Oracle s?) guideline: If a client can reasonably be expected to recover from an exception, make it a checked exception. If a client cannot do anything to recover from the exception, make it an unchecked exception.

48 Zusammenfassung Fehler sind unzulässige Programmzustände. Ausnahmen sind Ereignisse, die den regulären Ablauf abbrechen. Ausnahmen sind Objekte / Ausnahmetypen sind Klassen. Sprachunterstützung: try, catch, finally, throw, throws Von einigen Fehler kann man sich nicht erholen. Von gewissen Ausnahmen kann man sich erholen. Ausblick Syntax von Softwaresprachen Klausur

49 974 Ein Zitat zur Fehlerbehandlung The major difference between a thing that might go wrong and a thing that cannot possibly go wrong is that when a thing that cannot possibly go wrong goes wrong it usually turns out to be impossible to get at or repair. Douglas Adams [Ada92] Vergleiche dies mit dem Fehlschlagen einer Vorbedingung einer Methode.

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1 Kapitel 11 Fehler und Ausnahmen Fehler und Ausnahmen 1 Ziele Fehlerquellen in Programmen und bei der Programmausführung verstehen Das Java-Konzept der Ausnahmen als Objekte kennenlernen Ausnahmen auslösen

Mehr

Gliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions

Gliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions try-catch Schlüsselworte try-catch e Schlüsselwort Schlüsselwort selbst erstellte ermöglichen die Behandlung von Fehlern, die zur Laufzeit entstehen. try-catch in C: Fehler führt immer zum Abbruch des

Mehr

Exceptions. Prof. Dr. Margarita Esponda SS 2012. M. Esponda-Argüero

Exceptions. Prof. Dr. Margarita Esponda SS 2012. M. Esponda-Argüero Exceptions Prof. Dr. Margarita Esponda SS 2012 1 Ausnahmen Eine Ausnahme (Exception) ist ein Fehler oder ein nicht geplantes Ereignis, das während der Ausführung eines Programms vorkommt und dessen normalen

Mehr

Exception. 6. Exceptions. Die Klasse java.lang.exception. Fehlermeldung. Klassenname. Ort des Auftretens

Exception. 6. Exceptions. Die Klasse java.lang.exception. Fehlermeldung. Klassenname. Ort des Auftretens 6. Exceptions Exception Hintergrund: Programmieren auf der Basis von Verträgen Kundenklasse Lieferantenklasse Eine Exception ist ein Objekt, das Informationen über einen Programmfehler enthält. Eine Exception

Mehr

3. Exceptions. Hintergrund: Programmieren auf der Basis von Verträgen. Kundenklasse. Lieferantenklasse

3. Exceptions. Hintergrund: Programmieren auf der Basis von Verträgen. Kundenklasse. Lieferantenklasse 3. Exceptions Prinzipien von Exceptions 3. Exceptions Hintergrund: Programmieren auf der Basis von Verträgen Kundenklasse Lieferantenklasse Methodenaufruf Verpflichtung zur Einhaltung der Vorbedingung

Mehr

Beispiel: Methode mit einem Fehler. Diese Methode wird problematisch, wenn von außen eine Dauer von 0 Sekunden angegeben wird, etwa im Aufruf

Beispiel: Methode mit einem Fehler. Diese Methode wird problematisch, wenn von außen eine Dauer von 0 Sekunden angegeben wird, etwa im Aufruf 16 Exceptions Zur Behandlung unerwarteter Situationen bietet Java Unterstützung in Form von Exceptions oder Ausnahmen. Den Sinn von Exceptions können wir Ihnen an einem kleinen Beispiel klarmachen. Nehmen

Mehr

Teil II. Objektorientierte Programmierung und objektorientierter Entwurf

Teil II. Objektorientierte Programmierung und objektorientierter Entwurf Teil II Objektorientierte Programmierung und objektorientierter Entwurf 39 Kapitel 8 Robuste Programme durch Ausnahmebehandlung Ziele: Lernen, robuste Programme zu schreiben Ausnahmen als Objekte verstehen

Mehr

5.13 Umgang mit Fehlern

5.13 Umgang mit Fehlern 5.13 Umgang mit Fehlern Klassifikation von Fehlern: Syntaxfehler: Lexikalische Fehler: Falsche oder unbekannte Worte String s neu String("Max"); Falsche Anordnung von Anweisungen: Falscher Typ: import

Mehr

Javakurs zu Informatik I. Henning Heitkötter

Javakurs 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,

Mehr

Fehler die bei der Programmerstellung passieren können teilweise vom Compiler erkannt werden

Fehler die bei der Programmerstellung passieren können teilweise vom Compiler erkannt werden Exceptions Fehler die bei der Programmerstellung passieren können teilweise vom Compiler erkannt werden int a; double b=10; a = 10 * b; System.out.println(a); Fehler die während der Programmausführung

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 12. Fehler und Ausnahmen

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 12. Fehler und Ausnahmen 1 Kapitel 12 Ziele 2 Fehlerquellen in Programmen und bei der Programmausführung kennenlernen Das Java-Konzept der Ausnahmen als Objekte verstehen Ausnahmen auslösen können Ausnahmen behandeln können Fehlerhafte

Mehr

9. Fehlerbehandlung Advanced Programming Techniques. Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik

9. Fehlerbehandlung Advanced Programming Techniques. Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 9. Fehlerbehandlung Advanced Programming Techniques Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik:

Mehr

Spec# Einführung. Formale Software-Entwicklung Seminar SS 07 Universität Karlsruhe Hilal Akbaba

Spec# Einführung. Formale Software-Entwicklung Seminar SS 07 Universität Karlsruhe Hilal Akbaba Spec# Einführung Formale Software-Entwicklung Seminar SS 07 Universität Karlsruhe Hilal Akbaba Inhalt Einführung in C# Das Spec# System Die Konstrukte Vererben der Verträge System Architektur Einführung

Mehr

Einführung in die Programmierung Blockkurs Java

Einführung in die Programmierung Blockkurs Java Michael Bader 8. 12. April 2002 Freitag Inhaltsübersicht Exceptions und Errors Ausnahmebehandlung: try/catch/finally Threads Zugriffskontrolle bei gemeinsamen Variablen: synchronized, wait(), notify()

Mehr

Java-Schulung Grundlagen

Java-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

Mehr

Distributed Computing Group

Distributed 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

Mehr

Grundlagen der Informatik Ausnahmebehandlung & Threads

Grundlagen der Informatik Ausnahmebehandlung & Threads Grundlagen der Informatik Ausnahmebehandlung & Threads Prof. Dr. Bernhard Schiefer (basierend auf Unterlagen von Prof. Dr. Duque-Antón) bernhard.schiefer@fh-kl.de http://www.fh-kl.de/~schiefer Inhalt Ausnahmebehandlung

Mehr

1 Polymorphie (Vielgestaltigkeit)

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

Mehr

Einstieg in die Informatik mit Java

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

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Fehlerbehandlung und Ein- und Ausgabe Titel der Präsentation 2 Fehler = Exceptions? Die Exception- bzw. Ausnahmebehandlung in Java ist eine spezielle Form der Fehlerbehandlung Typischerweise

Mehr

Objektorientierte Programmierung. Kapitel 18: Exceptions II

Objektorientierte Programmierung. Kapitel 18: Exceptions II Stefan Brass: OOP (Java), 18. Exceptions II 1/50 Objektorientierte Programmierung Kapitel 18: Exceptions II Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2014/15 http://www.informatik.uni-halle.de/

Mehr

II.1.1. Erste Schritte - 1 -

II.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

Mehr

Beispiel: DB-Mock (1/7)

Beispiel: DB-Mock (1/7) Beispiel: DB-Mock (1/7) Aufgabe: DB, auf die vereinfachend nur lesend zugeriffen wird mocken warum: benötigte keine DB-Lizenz, garantiert gleiche Werte ohne aufwändiges reset, kein Zeitverlust durch Verbindungsaufbau

Mehr

Objektorientierte Programmierung. Kapitel 18: Exceptions II

Objektorientierte Programmierung. Kapitel 18: Exceptions II 18. Exceptions II 1/51 Objektorientierte Programmierung Kapitel 18: Exceptions II Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2014/15 http://www.informatik.uni-halle.de/ brass/oop14/

Mehr

Remote Method Invocation

Remote Method Invocation Remote Method Invocation spezielle Technik aus dem Java-Umfeld Ausführung der Methoden auf einem entfernten Rechner Analogon zum RPC (Remote Procedure Call) Zweck: Objekte in verschiedenen Java-VM s Aufruf

Mehr

Datenbankanwendungsprogrammierung Crashkurs Java

Datenbankanwendungsprogrammierung Crashkurs Java Datenbankanwendungsprogrammierung Crashkurs Java Denny Priebe Datenbankanwendungsprogrammierung p. Unterschiede zu C, C++ typedefs, Präprozessor Strukturen, Unions globale Funktionen Mehrfachvererbung

Mehr

Grundlagen der Programmierung Prof. H. Mössenböck. 6. Methoden

Grundlagen der Programmierung Prof. H. Mössenböck. 6. Methoden Grundlagen der Programmierung Prof. H. Mössenböck 6. Methoden Parameterlose Methoden Beispiel: Ausgabe einer Überschrift class Sample { static void printheader() { // Methodenkopf Out.println("Artikelliste");

Mehr

Große Übung Praktische Informatik 1

Große Übung Praktische Informatik 1 Große Übung Praktische Informatik 1 2005-12-08 fuessler@informatik.uni-mannheim.de http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,

Mehr

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen

Mehr

7. Übung zu Algorithmen und Datenstrukturen

7. Übung zu Algorithmen und Datenstrukturen 7. Übung zu Algorithmen und Datenstrukturen Dynamisches Programmieren Greedy Algorithms Exceptions 1 Dynamische Programmierung nutzt gezielt aus, dass man bei manchen Problemen den Rechenaufwand extrem

Mehr

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

14. Tutorium zu Programmieren

14. Tutorium zu Programmieren 14. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2009 by IPD Snelting

Mehr

3 Objektorientierte Konzepte in Java

3 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

Mehr

Java Remote Method Invocation (RMI)

Java Remote Method Invocation (RMI) Java Remote Method Invocation (RMI) Alexander Petry 13. Mai 2003 engl.: Entfernter Methodenaufruf 1 Übersicht 1. Einleitung 2. RMI Interfaces und Klassen 3. Parameterübergabe 4. Dynamisches Nachladen von

Mehr

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

1. Sei der String s = new String( xyzzy ) gegeben. Welcher Aufruf verändert s?

1. Sei der String s = new String( xyzzy ) gegeben. Welcher Aufruf verändert s? 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. Sei der String s = new String(

Mehr

Java für C++ Programmierer

Java für C++ Programmierer Java für C++ Programmierer Alexander Bernauer bernauer@inf.ethz.ch Einführung in die Übungen zu Informatik II (D ITET) FS2010 ETH Zürich Ziel Allgemeiner Überblick Kennenlernen der Suchbegriffe Warum Java?

Mehr

Java Einführung Methoden. Kapitel 6

Java Einführung Methoden. Kapitel 6 Java Einführung Methoden Kapitel 6 Inhalt Deklaration und Aufruf von Methoden Lokale und globale Namen (Bezeichner) Sichtbarkeit und Lebensdauer von Variablen in Methoden Überladen von Methoden 2 Methoden

Mehr

Programmentwicklung ohne BlueJ

Programmentwicklung ohne BlueJ Objektorientierte Programmierung in - Eine praxisnahe Einführung mit Bluej Programmentwicklung BlueJ 1.0 Ein BlueJ-Projekt Ein BlueJ-Projekt ist der Inhalt eines Verzeichnisses. das Projektname heißt wie

Mehr

Java - Programmierung - Objektorientierte Programmierung 1

Java - Programmierung - Objektorientierte Programmierung 1 Java - Programmierung - Objektorientierte Programmierung 1 // Klassen und Objekte public class KlaObj public static void main(string args []) Klasse1 a; a = new Klasse1("heute", 47); Klasse1 b = new Klasse1

Mehr

Angewandte IT-Sicherheit

Angewandte IT-Sicherheit Angewandte IT-Sicherheit Johannes Stüttgen Lehrstuhl für praktische Informatik I 30.11.2010 Lehrstuhl für praktische Informatik I Angewandte IT-Sicherheit 1 / 28 Aufgabe 1 Betrachten sie folgendes Programm:

Mehr

3 Objektorientierte Konzepte in Java

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

Mehr

am Beispiel von JUnit

am Beispiel von JUnit Aufbau eines Testwerkzeugs am Beispiel von JUnit Üblicher Ansatz für Tests und Fehlersuche: Print-Befehle, Debugger-Ausdrücke, Test-Skripte möglichst über globale Variable debug steuerbar Command Pattern

Mehr

Vererbung. Martin Wirsing. Ziele. Vererbung

Vererbung. Martin Wirsing. Ziele. Vererbung 2 Ziele Martin Wirsing en Begriff der einfachen verstehen und Redefinition von Oberklassenmethoden verstehen spolymorphie verstehen ie Klasse Object kennenlernen in Zusammenarbeit mit Michael Barth, Philipp

Mehr

Prof. W. Henrich Seite 1

Prof. W. Henrich Seite 1 Klasse - ist ein benutzerdefinierter Datentyp (Referenztyp) - hat Datenelemente - hat Methoden - Konstruktor ist spezielle Methode zum Erstellen eines Objektes vom Typ der Klasse (Instanz) - jede Klasse

Mehr

Synchronisation in Java. Invisible Web

Synchronisation in Java. Invisible Web Synchronisation in Java Studienprojekt Invisible Web Tang Zhihong Synchronisation in Java Synchronisationsproblem Monitore Wait und notify PipedInputStream und PipedOutputStream Synchronisation von Collections

Mehr

// Zeigt den insgesamt einbezahlten Betrag auf der Bank. // Muss 1600 GE sein. System.out.println("Current Bank balance: " + b.

// Zeigt den insgesamt einbezahlten Betrag auf der Bank. // Muss 1600 GE sein. System.out.println(Current Bank balance:  + b. / Testtreiberklasse, welche das Bankensystem testet. Es werden neue Bankkonten angelegt und Geld deponiert, abgehoben und transferiert. public class Main { / Main Methode fuehrt bestimmte Testfaelle aus.

Mehr

Praxisorientierte Einführung in C++ Lektion: "Exceptions"

Praxisorientierte Einführung in C++ Lektion: Exceptions Praxisorientierte Einführung in C++ Lektion: "Exceptions" Christof Elbrechter Neuroinformatics Group, CITEC June 18, 2014 Christof Elbrechter Praxisorientierte Einführung in C++ June 18, 2014 1 / 41 Table

Mehr

Client-Server-Beziehungen

Client-Server-Beziehungen Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server

Mehr

Embedded Software. Der C Präprozessor. Sichere objektbasierte Entwicklung dank C Präprozessor. Prof. Dr. Nikolaus Wulff

Embedded Software. Der C Präprozessor. Sichere objektbasierte Entwicklung dank C Präprozessor. Prof. Dr. Nikolaus Wulff Der C Präprozessor Sichere objektbasierte Entwicklung dank C Präprozessor Prof. Dr. Nikolaus Wulff Shapes kanonische Form Die Aufteilung in Methoden und Attribute erfolgt in zwei Structs XXX_Instance und

Mehr

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging Servlet Debugging Markus Völter, voelter@acm.org, www.voelter.de Bei der Arbeit mit Servlets kommt man recht schnell an den Punkt, an dem man Servlets vernünftig testen oder debuggen will. Mit Hilfe des

Mehr

Generische Typen in Java 1.5. Die Erweiterung der Java Language Specification

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

Mehr

Java-Programmierung. Remote Method Invocation - RMI

Java-Programmierung. Remote Method Invocation - RMI Java-Programmierung Remote Method Invocation - RMI Entwicklungsmethoden Sockets Entwurf verteilter Anwendungen ist relativ aufwändig, da zunächst ein Kommunikationsprotokoll entwickelt werden muss aufwändig

Mehr

Allgemein: Klassen testbar machen. 5. Mocking. Mocks programmieren. Zusammenspiel von Klassen testen

Allgemein: Klassen testbar machen. 5. Mocking. Mocks programmieren. Zusammenspiel von Klassen testen 5. Mocking Allgemein: Klassen testbar machen Wie werden Klassen testbar Entwicklung von Mocks mit der Hand Einführung in JMock Spezifikation von Mocks mit JMock Wann ist Mocking-Werkzeug sinnvoll Literatur:

Mehr

Java I Vorlesung Vererbung und Sichtbarkeit

Java I Vorlesung Vererbung und Sichtbarkeit Java I Vorlesung 4 Vererbung und Sichtbarkeit 17.5.2004 Vererbung Überladen, Überschreiben, Verstecken, Verschatten Zugriffskontrolle Statische Members Wiederholung: OOP Programme bestehen aus Klassen.

Mehr

5 Grundlagen der Java-Syntax

5 Grundlagen der Java-Syntax 5 Grundlagen der Java-Syntax Es sollen nun einige Grundregeln besprechen, die in jeder Java-Programmdatei berücksichtigt werden müssen. 5.1 Grundsätzliches zur Syntax von Java Programmen Zunächst sollten

Mehr

Theorie zu Übung 8 Implementierung in Java

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

Mehr

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren I Dr. Werner Struckmann 7. September 2015 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr

Mehr

Delegatesund Ereignisse

Delegatesund Ereignisse Delegatesund Ereignisse «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen Definition eines Ereignisses

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

Systemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007

Systemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007 Systemprogrammierung Projekt: Java RMI Wintersemester 2006 / 2007 Systemprogrammierung 1. Einleitung 2. Einführung in RPC 3. RMI 4. Code Beispiele 5. Live Vorstellung 6. Ausblick 7. Fazit 2 1. Einleitung

Mehr

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek Programmieren I Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2008/2009 1 / 22 2 / 22 Strategie zum Entwurf von Klassen Beispiele Objektorientierte Sichtweise: Mit welchen Objekten habe ich es

Mehr

Software Engineering Klassendiagramme Einführung

Software Engineering Klassendiagramme Einführung Software Engineering Klassendiagramme Einführung Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Aufgabe Erstellen Sie eine Klasse Person in Java. Jede Person verfügt

Mehr

Praktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel

Praktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel Praktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel FB Physikalische Technik Musterlösungen Teil 4 Aufgabe 1 package teil4; import javax.swing.*; public class Ei { int haltung, ident; String

Mehr

Info: Standard DO-178B. 5. Mocking. Zusammenspiel von Klassen testen. Allgemein: Klassen testbar machen

Info: Standard DO-178B. 5. Mocking. Zusammenspiel von Klassen testen. Allgemein: Klassen testbar machen Info: Standard DO-178B Zertifizierung Federal AviationAdministration (FAA), Software für Luftverkehrssysteme durch Standard DO-178B für requirement-based Tests and Code Coverage Analyse DO-178B-Levels

Mehr

Exceptions: Parameterprüfung import java.io.ioexception;

Exceptions: Parameterprüfung import java.io.ioexception; PPK2 Java Exceptions, Dateien Seite 1 von 31 Exceptions: Parameterprüfung import java.io.ioexception; public class Parameters public static String Methode(String str,exception obj,int index, String[] array)

Mehr

Einführung in Javadoc

Einführung in Javadoc Einführung in Javadoc Johannes Rinn http://java.sun.com/j2se/javadoc Was ist Javadoc? Javadoc ist ein Werkzeug, dass eine standardisierte Dokumentation für die Programmiersprache Java unterstützt. Vorteil:

Mehr

Gebundene Typparameter

Gebundene Typparameter Gebundene Typparameter interface StringHashable { String hashcode(); class StringHashMap { public void put (Key k, Value v) { String hash = k.hashcode();...... Objektorientierte

Mehr

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Kapitel 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

Nathan Burgener. Design by Contract. Modul SWE

Nathan Burgener. Design by Contract. Modul SWE NathanBurgener DesignbyContract ModulSWE NathanBurgener Inhaltsverzeichnis 1 WasistDesignbyContract...3 1.1 Überblick...3 1.2 DesignbyContractmitMethoden...4 1.3 DesignbyContractmitKlassen...5 1.4 Vererbung...6

Mehr

Aufgabe 1: Quer durch Java (5 Punkte) Bearbeiten Sie die folgenden Aufgaben:

Aufgabe 1: Quer durch Java (5 Punkte) Bearbeiten Sie die folgenden Aufgaben: Universität Augsburg, Institut für Informatik Sommersemester 2007 Prof. Dr. Werner Kießling 21. Juli 2007 Dr. Alfons Huhn, Markus Endres, Timotheus Preisinger Informatik II Klausur 1 Hinweise: Die Bearbeitungszeit

Mehr

Programmieren von Webinformationssystemen

Programmieren von Webinformationssystemen Programmieren von Webinformationssystemen Wolfgang Gassler Databases and Information Systems (DBIS) Institute of Computer Science University of Innsbruck dbis-informatik.uibk.ac.at 1 HTML Hypertext Markup

Mehr

Testen mit JUnit. Martin Wirsing. Ziele. in Zusammenarbeit mit Michael Barth, Philipp Meier und Gefei Zhang

Testen mit JUnit. Martin Wirsing. Ziele. in Zusammenarbeit mit Michael Barth, Philipp Meier und Gefei Zhang Testen mit JUnit Martin Wirsing in Zusammenarbeit mit Michael Barth, Philipp Meier und Gefei Zhang 12/04 2 Ziele Lernen Unit Tests zu schreiben Lernen mit Unit-Testen mit JUnit durchzuführen 3 Testen Da

Mehr

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle

Mehr

Benutzerauthentifizierung und Zugriffsschutz mit JAAS

Benutzerauthentifizierung und Zugriffsschutz mit JAAS Benutzerauthentifizierung und Zugriffsschutz mit JAAS Werner Eberling werner.eberling@mathema.de www.mathema.de Übersicht Altbekanntes kurz erwähnt Java Security Des Kaisers neue Kleider JAAS Zu Ihren

Mehr

Musterlösungen zur Klausur Informatik 3

Musterlösungen zur Klausur Informatik 3 Musterlösungen zur Klausur Informatik 3 Justus-Liebig-Universität Gießen Wintersemester 2003/2004 Aufgabe 1 (6 Punkte) Man kreuze bei den folgenden Deklarationen und Definitionen jeweils an, ob sie aus

Mehr

Höhere Programmierkonzepte Testklausur

Höhere Programmierkonzepte Testklausur Höhere Programmierkonzepte Testklausur Prof. Dr. Nikolaus Wulff Zum 15. Januar 2016 1 Ein Google-Map Algorithmus (5 Punkte) 1 2 typedef void X; 3 typedef void Y; 4 5 void map(unsigned int n / tuple length

Mehr

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) 1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.3. Anweisungen und Kontrollsttukturen - 1 - 3. Anweisungen und Kontrollstrukturen

Mehr

Themen. Web Service - Clients. Kommunikation zw. Web Services

Themen. Web Service - Clients. Kommunikation zw. Web Services Themen Web Service - Clients Kommunikation zw. Web Services Bisher: Implementierung einer Java Anwendung und Bereitstellung durch Apache Axis unter Apache Tomcat Java2WSDL Erzeugen einer WSDL-Datei zur

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

Java Einführung ABLAUFSTEUERUNG Kapitel 3 und 4

Java Einführung ABLAUFSTEUERUNG Kapitel 3 und 4 Java Einführung ABLAUFSTEUERUNG Kapitel 3 und 4 Inhalt dieser Einheit Merkmale und Syntax der verschiedenen Kontrollstrukturen: if else switch while do while for break, continue EXKURS: Rekursion 2 Kontrollstrukturen

Mehr

Remote Method Invocation

Remote Method Invocation Remote Method Invocation Aufruf von Methoden über die Grenzen der VM hinweg. Javaprozesse der rufenden und gerufenen Methode können auf verschiedenen Hosts laufen. Eine RMI-Applikation besteht aus dem

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Stefan Brass: OOP (Java), 15. Überladene Methoden 1/22 Objektorientierte Programmierung Kapitel 15: Überladene Methoden Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2013/14 http://www.informatik.uni-halle.de/

Mehr

C# im Vergleich zu Java

C# im Vergleich zu Java C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung

Mehr

Thread-Synchronisation in in Java. Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen

Thread-Synchronisation in in Java. Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen Thread-Synchronisation in in Java Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen Die Klasse Thread Die Die Klasse Thread gehört zur zur Standardbibliothek von von

Mehr

Variablen manipulieren per JDI

Variablen manipulieren per JDI Variablen manipulieren per JDI Zusammenfassung Jede moderne Java IDE verfügt über eine mächtige und dennoch meist einfach zu bedienende Benutzeroberfläche die das finden von Fehlern in lokalen oder entfernt

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Dateien lesen und schreiben 2 Übersicht der heutigen Inhalte File Streams try-with-resources Properties csv-dateien 3 Klasse File Die Klasse java.io.file bietet Unterstützung im Umgang

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

von Anja Austermann Drag and Drop

von Anja Austermann Drag and Drop von Anja Austermann Drag and Drop »Drag and Drop«ist die Bezeichnung für den Datentransfer zwischen unterschiedlichen Anwendungen mit grafischer Benutzeroberfläche. Zur Zeit arbeitet Drag and Drop in Java

Mehr

Vorlesung Software-Reengineering

Vorlesung Software-Reengineering Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke 1 1 Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen Wintersemester 2005/06 Überblick I 1 Refactoring 1 Refactoring

Mehr

Klassendefinitionen verstehen

Klassendefinitionen verstehen Klassendefinitionen verstehen Java-Programme bestehen aus Klassendefinitionen und sonst nichts! 1 1.0 Konzepte Felder Konstruktoren Methoden Parameter Zuweisungen ( = ) Anweisungen bedingte Anweisungen

Mehr

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) Wintersemester 2006/07 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl

Mehr

Vererbung & Schnittstellen in C#

Vererbung & Schnittstellen in C# Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung

Mehr

3. Grundlegende Sprachkonstruktionen imperativer Programme

3. Grundlegende Sprachkonstruktionen imperativer Programme 3. Grundlegende Sprachkonstruktionen imperativer Programme Java-Beispiele: Temperature.java Keyboard.java K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 4. Nov. 2015 2 Schwerpunkte

Mehr

Lösungsvorschläge. zu den Aufgaben im Kapitel 4

Lösungsvorschläge. zu den Aufgaben im Kapitel 4 Lösungsvorschläge zu den Aufgaben im Kapitel 4 Aufgabe 4.1: Der KNP-Algorithmus kann verbessert werden, wenn in der Funktion nexttabelle die Zuweisung next[tabindex] = ruecksprung; auf die etwas differenziertere

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

Exception Handling, Tracing und Logging C#.NET

Exception Handling, Tracing und Logging C#.NET Exception Handling, Tracing und Logging C#.NET Daniel Malovetz Inhaltsverzeichnis 1 Ausnahmen in.net: Exceptions 2 1.1 Definition von Ausnahmen......................... 2 1.2 Ausnahmebehandlung............................

Mehr

Programmieren von Webinformationssystemen

Programmieren von Webinformationssystemen Programmieren von Webinformationssystemen Nikolaus Krismer Databases and Information Systems (DBIS) Institute of Computer Science University of Innsbruck dbis-informatik.uibk.ac.at 1 PHP Ursprünglich:

Mehr

3. Auflage. O Reillys Taschenbibliothek. C# 5.0 kurz & gut. Joseph Albahari & Ben Albahari O REILLY. Aktualisierung von Lars Schulten

3. Auflage. O Reillys Taschenbibliothek. C# 5.0 kurz & gut. Joseph Albahari & Ben Albahari O REILLY. Aktualisierung von Lars Schulten O Reillys Taschenbibliothek 3. Auflage C# 5.0 kurz & gut O REILLY Joseph Albahari & Ben Albahari Aktualisierung von Lars Schulten Inhalt C# 5.0 kurz & gut... 1 Ein erstes C#-Programm... 2 Syntax... 5 Typgrundlagen...

Mehr