Ausnahmen. Exceptions. Definition Ausnahmen erzeugen Ausnahmen abfangen Ausnahmen weiterleiten. Dr. Beatrice Amrhein
|
|
- Adolf Beutel
- vor 6 Jahren
- Abrufe
Transkript
1 Ausnahmen Exceptions Definition Ausnahmen erzeugen Ausnahmen abfangen Ausnahmen weiterleiten Dr. Beatrice Amrhein
2 Definition 2
3 Definition: Ausnahme (Exception) In C# werden Fehler, die zur Laufzeit im Programm auftreten, über Ausnahmen (Exceptions) übermittelt. Dies können Fehler aus dem System, (Benutzer-)Eingabefehler oder Laufzeitfehler sein Sobald eine Ausnahme ausgelöst wird, wird sie in der Aufrufliste so lange aufwärts weitergeleitet, bis eine Fehlerbehandlung (catch- Anweisung) für die Ausnahme gefunden wird. Nicht abgefangene Ausnahmen werden vom System (bzw. der Laufzeit- Umgebung) in einem Dialogfeld als «nicht behandelte Ausnahme» anzeigt. 3
4 Definition: Ausnahme (Exception) Alle Ausnahmen werden durch Fehler-Klassen dargestellt. Alle Ausnahmen werden von der Basisklasse System.Exception abgeleitet. Die Fehler-Klasse bestimmt den Typ/die Art der Ausnahme und enthält Eigenschaften mit Details über die Ausnahme. Ausnahmen werden mit dem throwschlüsselwort geworfen (ausgeliefert). Werfen einer allgemeinen Ausnahme throw new System.Exception(); 4
5 Beispiele von Ausnahmen/Fehlern Ausnahme ArithmeticException DivideByZeroException Beschreibung Ausnahmen, die während arithmetischer Operationen ausgelöst werden, z. B. DivideByZeroException oder OverflowException. Wird ausgelöst, wenn versucht wird, einen ganzzahligen Wert durch 0 zu teilen. IndexOutOfRangeException Wird ausgelöst, wenn versucht wird, ein Array mit einem Index zu indizieren, der kleiner als 0 ist oder ausserhalb der Grenzen des Arrays liegt. InvalidCastException NullReferenceException StackOverflowException Wird ausgelöst, wenn eine explizite Konvertierung von einem Basistypin einen Schnittstellentyp oder in einen abgeleiteten Typ zur Laufzeit fehlschlägt. Wird ausgelöst, wenn ein Objekt referenziert wird, dessen Wert NULL ist. Wird ausgelöst, wenn der Ausführungsstapel durch zu viele anstehende Methodenaufrufe ausgelastet ist. Im Normalfall deutet dies auf eine zu tiefe Rekursion oder eine Endlosschleife hin. Nach dem Handbuch der.net 4.0-Programmierung, Rolf Wenger,
6 Die Ableitungshierarche der Exceptions Alle Exception-Klassen sind von der Basisklasse Exceptionabgeleitet und erben daher die Message Property und die ToString() Methode von Exception 6
7 Ausnahmen erzeugen 7
8 Methode mit Ausnahme Dies ist eine Methode, welche bei negativem Eingabeparameter (mit throw) eine Exception wirft. public void MethodeMitAusnahme(int p) Console.WriteLine("Beginn der Methode mit Parameter 0", p); if (p < 0) throw new System.Exception(); Console.WriteLine("Ende der Methode mit Parameter 0", p); 8
9 Methode mit Ausnahme public void MethodeMitAusnahme(int p) Console.WriteLine("Beginn der Methode mit Parameter 0", p); if (p < 0) throw new System.Exception(); Console.WriteLine("Ende der Methode mit Parameter 0", p); static void Main(string[] args) TestKlasse test = new TestKlasse(); test.methodemitexception(1); test.methodemitexception(-1); 9
10 Methode mit Ausnahme Falls eine Exceptiongeworfen wird, wird der Programm-Verlauf abgebrochen und die Methode sofort verlassen. Falls die aufrufende Methode die Exceptionnicht behandelt, wird das Programm mit einer Fehlermeldung (Laufzeitfehler) abgebrochen. public void MethodeMitAusnahme(int p) Console.WriteLine("Beginn der Methode mit Parameter 0", p); if (p < 0) Ausnahme bricht den throw new System.Exception(); Verlauf hier ab Console.WriteLine("Ende der Methode mit Parameter 0", p); p >= 0 10
11 Methode mit Ausnahme Falls eine Exception(Ausnahme) geworfen wird, wird der Programm-Verlauf abgebrochen und die Methode verlassen. Falls die aufrufende Methode die Ausnahme nicht behandelt, wird das Programm mit einer Fehlermeldung (Laufzeitfehler) abgebrochen. p >= 0 public void MethodeMitAusnahme(int p) Console.WriteLine("Beginn der Methode mit Parameter 0", p); if (p < 0) Ausnahme bricht das Programm ab throw new System.Exception(); Console.WriteLine("Ende der Methode mit Parameter 0", p); 11
12 Exceptions/ Ausnahmen behandeln 12
13 try und catch Zum Abfangen von (ev. auftretenden) Exceptionswird der Bereich, in welchem die Ausnahme entstehen könnte, mit Hilfe von try eingeschlossen. catch fängt eine so geworfene Exceptionauf und behandelt diese, zum Beispiel durch Ausgabe einer Fehlermeldung auf die Console. try tue etwas tue etwas, was ev. eine Exception wirft tue noch etwas, was ev. eine Exception wirft catch ( die geworfene Exception ) behandle die Exception 13
14 Beispiel: Division mit Exception Die TestKlasse hat eine Divisions-Methode, welche beim Versuch einer Division mit 0 eine Exception wirft. class TestKlasse public double Division(double x, double y) if (y == 0) throw new DivideByZeroException(); return x / y; 14
15 Beispiel: Division mit Exception Das Einfassen des Divisions-Aufrufs in einen try-block und das Abfangen der Exceptionmit einem catch Block verhindert das Auftreten eines (eventuellen) Laufzeitfehlers. try t.division(a, b)); catch (DivideByZeroException e) Console.WriteLine("Versuchte Division von 0 durch 1", a, b); 15
16 Beispiel: Division mit Exception Eingebettet in das Main Programm: public static void Main(string[] args) TestKlasse t = new TestKlasse(); double a = 3.2; double b = 0; try t.division(a, b)); catch (DivideByZeroException e) Console.WriteLine("Versuchte Division von 0 durch 1", a, b); 16
17 Beispiel: Vektor Bereichs-Überlauf Falls der folgenden Methode ein Vektor mit weniger als 4 Stellen übergeben wird, greift vektor[i] auf einen ungültigen Bereich zu. Dies wirft eine IndexOutOfRangeException. public double VektorDurchlauf(int[] vektor) double resultat = 0; for (int i = 0; i <= 3; i++) resultat += vektor[i]; return resultat; 17
18 Beispiel: Vektor Bereichs-Überlauf Auf die folgende Art kann die geworfene IndexOutOfRangeException abgefangen und eine Fehlermeldung auf die Console geschrieben werden. public static void Main(string[] args) int[] vektor = 1, 2, 3 ; TestKlasse t = new TestKlasse(); try t.vektordurchlauf(vektor); catch (IndexOutOfRangeException e) Console.WriteLine("VektorDurchlauf hat gültigen Bereich überschritten"); 18
19 Regeln für Ausnahmen Verwenden Sie einen try-block um Anweisungen herum, welche eventuell eine Ausnahmen generieren können. Sobald eine Ausnahme im try-block auftritt, springt die Ablaufsteuerung zur nächsten passenden Ausnahme-Behandlung. In C# wird die Ausnahme-Behandlung mit dem catch-schlüsselwort definiert. Falls für eine bestimmte Ausnahme keine Ausnahme-Behandlung vorhanden ist, wird die Ausführung des Programms mit einer Fehlermeldung (Dialog-Fenster) angehalten. 19
20 Falsche Ausnahme-Behandlung Hier wird eine IndexOutOfRangeExceptiongeworfen. Gefangen würde aber eine DivideByZeroException. public static void Main(string[] args) int[] vektor = 1, 2, 3 ; TestKlasse t = new TestKlasse(); try t.vektordurchlauf(vektor); catch (DivideByZeroException e) Console.WriteLine("Fehler");??? 20
21 Falsche Ausnahme-Behandlung Hier wird eine IndexOutOfRangeExceptiongeworfen. Gefangen würde aber eine DivideByZeroException. Die IndexOutOfRangeExceptionverursacht darum einen Laufzeitfehler. public static void Main(string[] args) int[] vektor = 1, 2, 3 ; TestKlasse t = new TestKlasse(); try t.vektordurchlauf(vektor); catch (DivideByZeroException) Console.WriteLine("Fehler");??? 21
22 Eigene, spezifische Ausnahme-Klassen definieren 22
23 Spezifische Exceptions Das Fangen von Exception(der Basisklasse aller Exceptions) behandelt alle Fehler. Allerdings ist dann nicht klar, welche Art von Exception aufgetreten ist und wie diese behandelt werden kann. Durch das Definieren von möglichst spezifischen (eigenen) Exception- Klassen, kann man exakte Informationen über den Typ des Fehlers erhalten. Eigene Exceptionskönnen ausführliche Informationen zum Fehler, z.b. den Zustand der Aufrufliste (wo genau ist der Fehler passiert) und eine Textbeschreibung des Fehlers enthalten. 23
24 Eigene Ausnahme implementieren und benutzen Die Klasse ParameterFehler ist von Exceptionabgeleitet und implementiert eine eigene, spezifische Ausnahme, die für Fehleingaben von Benutzern verwendet werden kann. Der Basiskonstruktor Exception(Stringmessage) speichert die Fehlermeldung. public class ParameterFehler : Exception public ParameterFehler(String message) : base("ungültige Parameter: " + message) // Fehlermeldung abspeichern 24
25 Verwenden der eigenen Exception-Klasse Der Konstruktorvon GeomFigur wirft bei der Eingabe von negativen Seitenlängen einen ParameterFehler (mit einer entsprechenden Fehlermeldung). protected GeomFigur(double a, double b) if (a <= 0 b <= 0) String meldung = String.Format("Seiten: a=0, b=1", a, b); throw new ParameterFehler(meldung); this.a = a; this.b = b; 25
26 Abfangen der eigenen Exception-Klasse class Program static void Main(string[] args) try Rechteck r = new Rechteck(-1.3, 2.4); catch (ParameterFehler e) Console.WriteLine(e.ToString()); Der Konstruktorvon Rechteck ruft den Basis-Konstruktor GeomFigur auf, welcher eine Ausnahme wirft. Der catch-block fängt die Ausnahme auf und gibt alle verfügbaren Informationen auf die Console aus. 26
27 Eigene Ausnahme mit überladenem Konstruktor Die Klasse EingabeFehler hat einen überladenen Konstruktor. Der zweite Konstruktorhat zum exakteren Ausgeben des Fehlers einen zusätzlichen optionalen Parameter, welcher weitere Informationen zum aufgetretenen Fehler ausgeben kann. public class EingabeFehler : Exception public EingabeFehler(String meldung) : base(meldung) public EingabeFehler(String meldung, params Object[] p) : base(string.format(meldung, p)) 27
28 Eigene Ausnahme EingabeFehler benutzen public class TestKlasse public static int Eingabe() String eingabe = Console.ReadLine(); char[] c = eingabe.tochararray(); if (c[0] < '0' c[0] > '9') throw new EingabeFehler("Eingabe '0' ist keine Zahl\n", c[0]); int nummer = int.parse(eingabe); return nummer; Benutzen des zweiten Konstruktors 28
29 Ausnahme abfangen und Fehlermeldung ausgeben static void Main(string[] args) try Console.WriteLine("Erste Zahl eingeben"); int nummer1 = TestKlasse.Eingabe(); Console.WriteLine("Zweite Zahl eingeben"); int nummer2 = TestKlasse.Eingabe(); catch (EingabeFehler e) Console.WriteLine(e.ToString()); Die Eingabe-Methode der TestKlasseversucht eine Nummer zu lesen und wirft im Fehlerfall eine Ausnahme Der catch-block fängt die Ausnahme auf und gibt alle verfügbaren Informationen auf die Console aus. 29
30 try-finally 30
31 finally Code in einem finally-block wird immerausgeführt, egal ob eine Exception ausgelöst wurde oder nicht. Verwenden Sie einen finally-block o um den Ablauf sauber zu beenden o um Ressourcen freizugeben, z.b. zum Setzen von null (falls nötig) oder zum Schliessen von im try-block geöffneten Streams oder Dateien o Um lokale Informationen auszugeben 31
32 TestMethode mit finally public class TestKlasse public void TestMethode(String s) try int i = int.parse(s); Console.WriteLine("Division: 2/0=1", i, 2 / i); finally Console.Write("\nDie Eingabe war: 0\n", s); Exception zu aufrufender Methode weiterleiten 32
33 TestMethode mit finally try int i = int.parse(s); Console.WriteLine("Division: 2/0=1", i, 2 / i); finally Console.Write("\nDie Eingabe war: 0\n", s); 33
34 TestKlasse benutzen static void Main(String[] args) TestKlasse t = new TestKlasse(); String s=""; while(!s.equals("e")) Console.Write("Bitte ganze Zahl eingeben oder 'e' zum Beenden: "); s = Console.ReadLine(); try t.testmethode(s); catch (DivideByZeroException e) Console.WriteLine(e.Message); catch (FormatException e) Console.WriteLine(e.Message); Erst nachdem der finallyblock ausgeführt wurde, wird die Exception im passenden catch-block behandelt. 34
35 Der Ablauf static void Main(String[] args) TestKlasse t = new TestKlasse(); String s=""; while(!s.equals("e")) Console.Write("Bitte ganze Zahl eingeben oder 'e' zum Beenden: "); s = Console.ReadLine(); try t.testmethode(s); catch (DivideByZeroException e) Console.WriteLine(e.Message); catch (FormatException e) Console.WriteLine(e.Message); Im Fehlerfall Sonst public class TestKlasse public void TestMethode(String s) try int i = int.parse(s); Console.WriteLine("Division: 2/0=1", i, 2 / i); finally immer Console.Write("\nDie Eingabe war: 0\n", s); Nach dem Handbuch der.net 4.0-Programmierung, Rolf Wenger,
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
MehrBeispiel: 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
MehrExceptions. 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
MehrGliederung 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
MehrTeil 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
MehrProgrammieren 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
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin
MehrÜ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
MehrPraktikum 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
MehrException 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............................
MehrEinfü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()
MehrJava: 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
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
Mehr9. 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:
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
MehrGroß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,
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
MehrII. 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
MehrEinfü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
Mehr5.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
MehrSoftware-Engineering Software-Management
Software-Engineering Software-Management 12.3 Unit-Tests mit JUnit - Wissen, was der Sourcecode macht! Lösung Prof. Dr. Rolf Dornberger Software-Engineering: 12.3 Unit-Tests mit JUnit 30.04.2006 1 12.3
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
MehrTest zu Grundlagen der Programmierung Leitung: Michael Hahsler. 21. November 2003
Test zu Grundlagen der Programmierung Leitung: Michael Hahsler 1. November 00 Name Martrikelnummer Unterschrift Bitte kreuzen Sie das Studium an, für das Sie diese Prüfung ablegen: O Bakkalaureat Wirtschaftsinformatik
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,
Mehr3. Konzepte der objektorientierten Programmierung
3. Konzepte der objektorientierten Programmierung 3.1 Basiskonzepte 3.2 Generalisierung / Spezialisierung 3.3 Aggregation 3.4 Assoziation 3.5 Nachrichten 3.6 Polymorphismus 3. Konzepte der Objektorientierung
MehrJava Schulung (Java 2 Java Development Kit 5 / 6)
2. Grundlagen der Objektorientierung 2.1 Klassen, Attribute, Methoden Klassen Eine Klasse beschreibt als Bauplan Gemeinsamkeiten einer Menge von Objekten ist also ein Modell, auf dessen Basis Objekte erstellt
MehrInformatik II. /* c) Baumstruktur in einen String schreiben und zurueckgeben */ public String tostring() {
Universität Augsburg, Institut für Informatik Sommersemester 2006 Prof. Dr. Werner Kießling 08. Juni. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5 Aufgabe 1: Cloneable Tree.java Informatik II
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
Mehr188.154 Einführung in die Programmierung für Wirtschaftsinformatik
Beispiel 1 Vererbung (Liste) Gegeben sind die beiden Klassen ListNode und PersonNode. 188.154 Einführung in die Programmierung für Wirtschaftsinformatik Wiederholung, Prüfungsvorbereitung Monika Lanzenberger
MehrObjektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
MehrProgrammieren 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
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
Mehr3 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
Mehr1. 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(
MehrKapitel 6. Vererbung
Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen
MehrProgrammierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 8. Arrays. Arrays
1 Kapitel 8 Ziele 2 Die Datenstruktur der kennenlernen Grundlegende Algorithmen auf in Java implementieren können Mit von Objekten arbeiten können 3 Erweiterungen zur Behandlung von : Überblick Bisher
MehrAllgemein: 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:
MehrKapitel 6. Vererbung
1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben
MehrException Handling, Tracing und Logging
Exception Handling, Tracing und Logging Proseminar Objektorientiertes Programmieren mit.net und C# Tomas Ladek Institut für Informatik Software & Systems Engineering Agenda Exceptions Allgemeines Implementierung
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
MehrInfo: 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
MehrVerhindert, 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:
Mehr5.6 Vererbung. Vererbung
5.6 Vererbung Klassen können zueinander in einer "ist ein"- Beziehung stehen Beispiel: Jeder PKW ist ein Kraftfahrzeug, jedes Kraftfahrzeug ist ein Transportmittel aber: auch jeder LKW ist ein Kraftfahrzeug
MehrKapitel 6. Vererbung
1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben
MehrAlgorithmen und Datenstrukturen 07
5. Dezember 2011 1 Besprechung Blatt 6 Fragen 2 Vererbung Allgemein abstract Interfaces 3 Unified Modeling Language (UML) Ablaufdiagramme Klassendiagramme Anwendungsfalldiagramme 4 Vorbereitung Blatt 7
MehrSEP 114. Design by Contract
Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit
MehrMusterlö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
Mehr14. 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
MehrNathan 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
MehrVererbung & 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
MehrGetName(), GetName(), GetGeschlecht() und AelterWerden().
11. Vererbung Vererbung ist eine der mächtigsten Funktionalitäten der objektorientierten Programmiersprachen. Man versteht unter Vererbung die Tatsache, dass eine Klasse alle Methoden und Variablen einer
MehrProgrammieren 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
MehrObjektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ
Objektorientierte Programmierung Objektorientierte Programmierung Eine Einführung mit BlueJ stellt die Daten, ihre Struktur und ihre Beziehungen zueinander in den Vordergrund. Weniger im Blickpunkt: die
Mehri 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
MehrTypumwandlungen bei Referenztypen
Typumwandlungen bei Referenztypen Genau wie es bei einfachen Typen Typumwandlungen gibt, gibt es auch bei Referenztypen Umwandlungen von einem Referenztypen in einen anderen Referenztypen, die wie bei
MehrThemen. 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Übung 1 mit C# 6.0 MATTHIAS RONCORONI
Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,
MehrErster Bug: eine Motte
SOFTWAREFEHLER Der erste Bug Erster Bug: eine Motte Der Begriff Bug (deutsch: Motte) stammt aus dem Jahre 1945, als Ingenieure in einem Schaltrelais eines Computers (Harvard Mark II-System) eine Motte
Mehr5. Threads, Serverprozesse und Benachrichtigungen
5. Threads, Serverprozesse und Benachrichtigungen Threads allgemein Threads in Android: Handler und Messages Services: Local, Remote, Binding Benachrichtigungen Entwicklung mobiler Anwendungen Europäische
MehrPIWIN 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:
MehrNeue Features in C# 2.0
Neue Features in C# 2.0 (gekürzt) Generische Typen Iteratoren Vereinfachte Delegate-Erzeugung Anonyme Methoden Partielle Klassen Sonstiges University of Linz, Institute for System Software, 2004 published
MehrJava Einführung Methoden in Klassen
Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding
MehrJava - 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
MehrSichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben
Sichtbarkeit & statische Methoden Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben Nicht sichtbare Methoden Wollen Eltern bestimmte Methoden vor den
MehrWillkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java
Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen
MehrDatenbankanwendungsprogrammierung Crashkurs Java
Datenbankanwendungsprogrammierung Crashkurs Java Denny Priebe Datenbankanwendungsprogrammierung p. Unterschiede zu C, C++ typedefs, Präprozessor Strukturen, Unions globale Funktionen Mehrfachvererbung
MehrUniversität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger
Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger Informatik II Hinweise: Die Bearbeitungszeit beträgt 90
MehrVIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden
VIII: Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik I VIII: Vererbung 259 Beispiel:
MehrPraxisorientierte 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
MehrVererbung. Vererbung von Methoden und Instanzvariablen. Vererbung als Realisierung einer is-a Beziehung.
Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik II: Objektorientierte SW-Entwicklung,
MehrObjektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern
Objektorientierte Programmierung mit Python Polymorphismus und Vererbung Eltern Kind Kind Kind Kind Prinzipien der objektorientierten Programmierung Vererbung Strukturierung von Klassen. Oberbegriffe beschreiben
MehrÜbungsblatt 3: Algorithmen in Java & Grammatiken
Humboldt-Universität zu Berlin Grundlagen der Programmierung (Vorlesung von Prof. Bothe) Institut für Informatik WS 15/16 Übungsblatt 3: Algorithmen in Java & Grammatiken Abgabe: bis 9:00 Uhr am 30.11.2015
MehrMeeting C++ C++11 R-Value Referenzen
Meeting C++ Detlef Wilkening http://www.wilkening-online.de 09.11.2012 Inhalt Motivation L-Values und R-Values R-Value Referenzen Move Semantik std::move Funktionen mit R-Value-Referenz Parametern Fazit
MehrEinführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel.
Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 7, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)
MehrMobile und Verteilte Datenbanken
Mobile und Verteilte Datenbanken Java RMI Vorlesung Wintersemester 2010/2011 groppe@ifis.uni-luebeck.de Institut für Informationssysteme Universität zu Lübeck Java Remote Method Invocation (RMI) Realisierung
MehrObjektorientierte Programmierung
Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Übungsblatt 5 Lösungsvorschlag Objektorientierte Programmierung 22. 05. 2006 Lösung 9 (SMS-Eingabe am
MehrEinführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005
Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 02: Klassen & Objekte Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Klassen Grundstruktur einer Java-Klasse Eigenschaften (Attribute) Variablen
MehrRekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Rekursion Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-12-13/infoeinf WS12/13 Aufgabe 1: Potenzfunktion Schreiben Sie eine Methode, die
MehrFachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6
Gudrun Fischer Sascha Kriewel programmierung@is.informatik.uni-duisburg.de Anmeldung zur Klausur! Übungsblatt Nr. 6 Um an der Klausur teilzunehmen, müssen sich Studierende der angewandten Informatik in
MehrAufgabe 1. »Programmieren«, WS 2006/2007. Nino Simunic M.A.
»Programmieren«, WS 006/007 Nino Simunic (nino.simunic@uni-due.de) Übungsblatt 4 Aufgabe 1 OOP In dieser Aufgabe sollen Sie Autos als Klasse Car modellieren. Die Eigenschaften auf attributiver Ebene sind:
MehrTest-Driven Design: Ein einfaches Beispiel
Test-Driven Design: Ein einfaches Beispiel Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer SS 06 2 Ziele Veranschaulichung der Technik des Test-Driven Design am Beispiel eines Programms
MehrSpec# 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
MehrTesten 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
MehrProgrammiervorkurs 2008
Programmiervorkurs 2008 Es steht noch was aus Wir erinnern uns, jede Methode beginnt mit: public static Aber jetzt wollen wir endlich klären, was das eigentlich ist Fertig? Programmiervorkurs WS 2009 Fachbereich
Mehrvon 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
MehrEmbedded 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
MehrC++-Zusammenfassung. H. Schaudt. August 18, 2005
C++-Zusammenfassung H. Schaudt August 18, 2005 1 Datentypen 1.1 Grunddatentypen int (-32xxx bis +32xxx, implementerungs-abhängig) char -128 bis +128 float double bool (C++) int und char sind austauschbar:
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,
MehrSoftware 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
MehrC# 2000 Expression Beispielcodes für Konsolen- und Formularanwendung
C# 2000 Expression Beispielcodes für Konsolen- und Formularanwendung 1. "Hai!" [Konsolenanwendung] Console.WriteLine("Hai, wie geht's?"); 2. Muktiplikation mit sich selbst [Konsolenanwendung] // Ausgabe
MehrJava Einführung Abstrakte Klassen und Interfaces
Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer
MehrFehler 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
MehrJava-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
MehrPrimitive Datentypen
Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.
MehrEin erstes Java-Programm
Ein erstes Java-Programm public class Rechnung { public static void main (String [] arguments) { int x, y; x = 10; y = -1 + 23 * 33 + 3 * 7 * (5 + 6); System.out.print ("Das Resultat ist "); System.out.println
MehrArrays und Methoden. Programmiervorkurs WS 2010 / 11
Arrays und Methoden Programmiervorkurs WS 2010 / 11 Einleitung Bisher sind einfach Programme möglich Nun wollen wir Organisation und Stil verbessern Gesamter Code sollte nicht an einer Stelle stehen Nicht
MehrEinfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"
MehrAK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik www.munz-udo.de
Aufgaben: Ein Ausgabe Ein Rechner verwaltet nicht nur Daten, die während der Laufzeit des Programms erzeugt werden. Die meisten Programme greifen auf ältere Datenbestände zurück oder erzeugen für einen
Mehr