Softwarewiederverwendung und Patterns

Größe: px
Ab Seite anzeigen:

Download "Softwarewiederverwendung und Patterns"

Transkript

1 Problembeschreibung und Beispiele Mechanismen der Ausnahmebehandlung C++-Ausnahmebehandlung entsprechend dem Sprachstandard strukturierte Ausnahmebehandlung (Structured Exception Handling, SEH) z.b. für Windows XP Mechanismen der Ausnahmebehandlung in Klassenbibliotheken zwei Arten von Ausnahmen Ausnahmen, die durch Erzeugung von Instanzen von Ausnahmeklassen einer problembezogenen Klassenhierarchie beschrieben werden Ausnahmen, die sich auf das Laufzeitsystem oder die Hardware beziehen (basismaschinenorientiert) 117

2 Designentscheidungen Ziele des Exception Handling sind die Erhöhung der Robustheit von Anwendungen, die konsistente Behandlung von Exceptions sowie die Schaffung der Möglichkeit, beim Auftreten von Exceptions eine Applikation ohne Datenverlust zu beenden. 118

3 Designentscheidungen Design der Ausnahmebehandlung Ausnahmezustände(-objekte) werden primär zur Ausnahmebehandlung erzeugt. Ausnahmebehandlungsroutinen sind gegenüber normalen Funktionen stark in der Minderzahl. Ausnahmezustände treten im normalen Programmablauf ausgesprochen selten auf. Ausnahmezustände sind ein Konzept der Sprache im Gegensatz zu einem Detail der Implementierung, z.b. bei der Fehlerbehandlung. 119

4 Designentscheidungen Die Ausnahmebehandlung ist nicht dafür gedacht, eine Alternative zur normalen Beendigung eines Programmablaufs zu bieten. jede beliebige Funktion eines Programms in ein fehlertolerantes Konstrukt zu verwandeln, sondern als Mechanismus, ein Subsystem auch dann wesentlich toleranter gegenüber außergewöhnlichen Zuständen zu machen, wenn die einzelnen Routinen dieses Subsystems auf eine globale Strategie bei der Behandlung von Fehlern verzichten. Programmierer in das Korsett einer einzigen Wahrheit bei der Behandlung von Ausnahmen zu zwingen, sondern die Ausdrucksmöglichkeiten der Sprache zu bereichern. 120

5 Architekturlösungen Schlüsselworte: try - Deklaration eines Blocks zur Ausnahmebehandlung. Nach try beginnt der überwachte Codeabschnitt throw catch - Auswerfen einer Ausnahme. Durch throw wird zur Laufzeit ein Exceptionobjekt erzeugt - Klausel zur Ausnahmebehandlung. Zu jedem try-block können mehrere catch()- Behandlungsroutinen existieren. Der Parameter von catch() bezeichnet den Typ des Exceptionobjekts. 121

6 Architekturlösungen Verarbeitungsmodell der Ausnahmebehandlung Auslösende und behandelnde Exceptionblöcke Compiler erzeugt 122

7 Programmtechnische Lösungen Fälle von catch( ) catch(ctest E) { // catches a copy catch(ctest1 &E1) { // catches a reference catch(ctest) { // an exception object is not available 123

8 Programmtechnische Lösungen throw-ausdruck try { throw CSomeOtherException(); catch() { // for all exception necessary to do throw; // throw exception once more Ein throw-ausdruck ohne Exceptionobjekt löst erneut eine Ausnahme vom Typ der gerade behandelten Ausnahme aus. 124

9 Programmtechnische Lösungen Exceptionobjekt Es können problembezogene (entworfen mit der Applikation) und umgebungsbezogene (z.b. des Laufzeitsystems) Exceptionklassen existieren. Das Exeptionobjekt wird immer durch den Kopierkonstruktor der jeweiligen Exeptionklasse erstellt. Behandeln einer Ausnahme Nichtbehandeln einer Ausnahme Falls für die aktuelle Ausnahme keine passende catch()- Behandlungsroutine gefunden wurde, wird die vordefinierte Laufzeitfunktion terminate() aufgerufen. set_terminate() gestattet das nutzerdefinierte Setzen von terminate(). 125

10 Programmtechnische Lösungen Beispiel: Definition von terminate() #include <process.h> void term_func() { cout << "call term_func." << endl; exit(-1); int main() { try { set_terminate(term_func); throw "not enough memory"; catch(int) { cout << "Integer Exception" << endl; return 0; 126

11 Programmtechnische Lösungen Beispiel: Ausnahmebehandlung bei polymorphen Objekten #include <typeinfo.h> CPerson* ex; CPerson pers("firstname1", "Name1", "Address1", dat1, m); CCustomer cust("firstname2", "Name2", "Address2", dat2, f, "0002", "Note2", dat3); ex = cust.generate(); // ex references a customer try { *ex = pers; // assigns a person to a customer // dynamic_cast in assignment operator catch(bad_cast) { cout << "Person has no customer attributes" << endl; 127

12 Programmtechnische Lösungen Gruppierung von Ausnahmen Beispiel: class Matherr {; class Overflow : public Matherr {; class Underflow : public Matherr {; class Zerodivide : public Matherr {; 128

13 Programmtechnische Lösungen Gruppierung von Ausnahmen Damit lassen sich sowohl allgemeine, als auch spezielle Fehler behandeln. void f() { try { // throw an exception catch(overflow) { // handle Overflow exceptions catch(matherr&) { // polymorhic case // handle all other Matherr exceptions 129

14 Bemerkungen Kosten der Ausnahmebehandlung Zum einem muss das Programm Informationen über anzulegende Exceptionobjekte (Prototypen) sammeln und zum anderen müssen diese Informationen ständig aktualisiert werden. Dieses passiert auch, wenn man Exceptions nicht behandelt. Des Weiteren entstehen Kosten bei der Benutzung von try-blöcken. Diese entstehen natürlich bei jeder Benutzung. Deshalb sollte man try-blöcke nur an sinnvollen Stellen einfügen, z.b. für Exceptions, die man auch auffangen will. Durch die Anwendung von Werkzeugen können die Programmperformance untersucht und unnötige try-blöcke beseitigt werden. 130

15 Objektkonstruktion (Object Construction) Problembeschreibung und Beispiele Statische Objektkonstruktion { CPerson pers1; // construction of pers1 // destruction of pers1 131

16 Objektkonstruktion (Object Construction) Problembeschreibung und Beispiele Dynamische Objektkonstruktion Quellcodeerzeugung Durch die Quellcodeverarbeitung wird nur der Speicherplatz für eine Pointervariable bereitgestellt. Quellcodeverarbeitung Der Speicherplatz für die Instanz, ihre Initialisierung sowie die Bindung an einen Namen erfolgt durch Binärcodeverarbeitung. Binärcodeverarbeitung Am Ende des Gültigkeitsbereichs des Namens erfolgt automatisch nur die Freigabe des Speicherplatzes für die Pointervariable. Die Behandlung des Speicherplatzes für die erzeugte Instanz hängt vom jeweiligen Verarbeitungsmodell ab. 132

17 Objektkonstruktion (Object Construction) Designentscheidungen Ansätze Klonierung Nutzung von Object Factory Class Factory 133

18 Objektkonstruktion (Object Construction) Designentscheidungen Hierarchie der dynamischen Objektkonstruktion Class Factory Object Factory Nutzung von Quellcodeverarbeitung Repository Verwaltung von Klonierung 134

19 Objektkonstruktion (Object Construction) Architekturlösungen Klonierung virtuellen Methode Generate() Class Factory Object Factory Nutzung von Verwaltung von Klonierung Repository Quellcodeverarbeitung public virtual Generate(out pers: CPerson), // clones an object 135

20 Objektkonstruktion (Object Construction) Architekturlösungen Klonierung Class Factory Object Factory Nutzung von Verwaltung von Klonierung Repository Quellcodeverarbeitung CPerson pers persx +CPerson() Generate(persx) +CPerson( ) variables pers: CPerson, persx: CPerson; body pers.+cperson(); pers.generate(persx); bodyend 136

21 Objektkonstruktion (Object Construction) Architekturlösungen Nutzung von Class Factory Object Factory Nutzung von Verwaltung von Klonierung Repository Quellcodeverarbeitung Jede Klasse besitzt eine private Klassenvariable (Prototyp), die vom Typ der jeweiligen Klasse ist. Die Referenz auf den Prototyp existiert für jede registrierte Klasse im Descriptionobjekt. Beispiel body Prototype.+CEmployee("Employee", "Prototype") bodyend public GetPrototype(in sname: String, in cname: String, out any: CAny); // returns the prototype of class cname from system sname // if possible, else an invalid instance of CAny 137

22 Objektkonstruktion (Object Construction) Architekturlösungen Nutzung von Class Factory Object Factory Nutzung von Verwaltung von Klonierung Repository Quellcodeverarbeitung Employee Person CPerson Description CEmployee Prototype CDescription Prototype DescInstance 138

23 Objektkonstruktion (Object Construction) Architekturlösungen Nutzung von Class Factory Object Factory Nutzung von Verwaltung von Klonierung Repository Quellcodeverarbeitung Employee Person CPerson Description CEmployee Prototype CDescription Prototype 1.1: RegistrateInstance( ) DescInstance 139

24 Objektkonstruktion (Object Construction) Architekturlösungen Nutzung von Class Factory Object Factory Nutzung von Verwaltung von Klonierung Repository Quellcodeverarbeitung Employee Person CPerson Description CEmployee Prototype CDescription Prototype 1.1: RegistrateInstance( ) DescInstance 140

25 Objektkonstruktion (Object Construction) Architekturlösungen Nutzung von Person CPerson Class Factory Object Factory Nutzung von Verwaltung von Klonierung Repository Quellcodeverarbeitung Employee CEmployee Prototype Description CDescription Prototype 1.1: RegistrateInstance( ) DescInstance Application variables Prototype: CAny; empl: CEmployee; body DescInstance.GetPrototype ("Employee", "CEmployee", Prototype); Prototype.Generate(empl); bodyend 141

26 Objektkonstruktion (Object Construction) Architekturlösungen Object Factory Class Factory Object Factory Nutzung von Verwaltung von Klonierung Repository Quellcodeverarbeitung Eine Object Factory ist Instanz einer Klassen CObjectFactory. Vorteile der Objektkonstruktion mit einer Factory sind: einheitliche Erzeugungsoperationen, zentrale Erzeugung und Verwaltung von Instanzen, zentrale Ressourcenverwaltung, logische Trennung der Erzeugungsoperation von Zugriffsoperationen u.a. 142

27 Objektkonstruktion (Object Construction) Architekturlösungen Class Factory Class Factory Object Factory Nutzung von Verwaltung von Klonierung Repository Quellcodeverarbeitung Bei der Class Factory wird der Quellcode einer Klasse registriert. Zum einen kann dann für eine so registrierte Klasse nach den Prinzipien der Object Factory die Erzeugung und Verwaltung von Instanzen erfolgen. Zum anderen lassen sich zur Laufzeit neue Klassen und Beziehungen zwischen ihnen konstruieren. Die Instanzenzustände sind nur schwer rekonstruierbar. 143

Einführung in die Programmierung mit C++

Einführung in die Programmierung mit C++ 1 Seite 1 Einführung in die Programmierung mit C++ Teil IV - Weiterführende Themen 11. Ausnahmebehandlung Vor-Ort Fehlerbehandlung Seite 2 Struktur (benötigt iostream und fstream header) std::ifstream

Mehr

Ausnahmebehandlung. (exceptionhandling) in C++

Ausnahmebehandlung. (exceptionhandling) in C++ Ausnahmebehandlung (exceptionhandling) in C++ Diese Folien basieren auf Kapitel 19 in Herbert Schildt, C++ ENT-PACKT, mitp. Weiterführende Informationen zu diesem Themengebiet sind insbesondere dort zu

Mehr

(Ausnahmebehandlung)

(Ausnahmebehandlung) 16. Exceptions (Ausnahmebehandlung) 16-1 Objektorientierte Programmierung (Winter 2010/2011) Kapitel 16: Exceptions (Ausnahmebehandlung) Motivation Throw und Catch 16. Exceptions (Ausnahmebehandlung) 16-2

Mehr

HSR Rapperswil 2001 Markus Rigling. Programmieren: Exceptions Auflage

HSR Rapperswil 2001 Markus Rigling. Programmieren: Exceptions Auflage HSR Rapperswil 2001 Markus Rigling Programmieren: Exceptions 1 1. Auflage Inhaltsverzeichnis: 1. Was sind Exceptions?... 3 2. Struktur des Exception Handling... 3 3. Try-Block... 4 4. Exception Handler

Mehr

1.5. Strukturierte Anweisungen

1.5. Strukturierte Anweisungen 1.5. Strukturierte Anweisungen Switch-Anweisung (C++): Initialisierungen dürfen nicht 'übersprungen' werden: switch (i) { int v1 = 2; // ERROR: jump past initialized variable case 1: int v2 = 3; //...

Mehr

OMSI / Teil 1 / C++ Andreas Blunk. 5. April 2006, Berlin

OMSI / Teil 1 / C++ Andreas Blunk. 5. April 2006, Berlin OMSI / Teil 1 / C++ Andreas Blunk 5. April 2006, Berlin Zusammenfassung Dieses Dokument ist eine Ergänzung zu den Folien von C++ aus dem 1. Teil der Vorlesung Objektorientierte Modellierung, Spezifikation

Mehr

1.) Behandlung von Laufzeitfehlern in Visual Basic

1.) Behandlung von Laufzeitfehlern in Visual Basic 1.) Behandlung von Laufzeitfehlern in Visual Basic Laufzeitfehler sind Fehler, die während der Programmausführung (Laufzeit) auftritt. Laufzeitfehler werden in der Regel nicht direkt durch den Programmcode,

Mehr

Umgang mit Fehlern. Sinn von Ausnahme-/Fehlerobjekten Dokumentation Umgang mit Fehlern Eigene Fehlerklassen

Umgang mit Fehlern. Sinn von Ausnahme-/Fehlerobjekten Dokumentation Umgang mit Fehlern Eigene Fehlerklassen Umgang mit Fehlern Sinn von Ausnahme-/Fehlerobjekten Dokumentation Umgang mit Fehlern Eigene Fehlerklassen Die Java-Fehlerbehandlung stellt gegenüber älteren Verfahren einen großen Fortschritt dar. Prof.

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte

Mehr

Ausnahmen. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung

Ausnahmen. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung Dr. Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung WS18/19 https://www.sosy-lab.org/teaching/2018-ws-infoeinf/ Fehlerarten Bei der Programmierung

Mehr

Ausnahmen (Exceptions)

Ausnahmen (Exceptions) Ausnahmen (Exceptions) Herkömmliche Fehlerbehandlung Jede Methode liefert einen Fehlercode int result; result = p(); if (result == ok) { result = q(); if (result == ok) { result = r(); if (result == ok)

Mehr

Ausnahmen. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung

Ausnahmen. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung https://www.sosy-lab.org/teaching/2017-ws-infoeinf/ WS17/18 Fehlerarten Bei der Programmierung

Mehr

Praxis der Programmierung

Praxis der Programmierung Liste, Ausnahmefehler, Template-Funktionen und -Klassen Institut für Informatik und Computational Science Henning Bordihn 1 Stack als einfach verkettete Liste 2 Aufgabe 1 1. Kopieren Sie aus /home/rlehre/w13

Mehr

Komponenten-basierte Entwicklung Teil 4: Exceptions

Komponenten-basierte Entwicklung Teil 4: Exceptions Komponenten-basierte Entwicklung Teil 4: Exceptions 31.10.14 1 Definitionen I Exception = Ausnahme = Situation, in der während einer Operation eine der Bedingungen des Typs bzw. der Klasse verletzt wird

Mehr

Ausnahmen. Dr. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Ausnahmen. Dr. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Dr. Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-16-17/infoeinf WS16/17 Action required now 1. Smartphone: installiere die App "socrative

Mehr

Grundlagen der Programmierung Prof. H. Mössenböck. 16. Ausnahmen (Exception Handling)

Grundlagen 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();

Mehr

Grundlagen der Fehlerbehandlung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 06: Ausnahme- und Fehlerbehandlung in Java.

Grundlagen 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

Mehr

7. Übung Informatik II - Objektorientierte Programmierung

7. Übung Informatik II - Objektorientierte Programmierung 7. Übung Informatik II - Objektorientierte Programmierung 29. Mai 2015 Inhalt 1 2 3 Übersicht 1 2 3 Idee Menschen nehmen die Welt in Form von Objekten wahr manche Objekte haben gleiche Eigenschaften, hierüber

Mehr

Ausnahmen. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Ausnahmen. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung : http://www.pst.ifi.lmu.de/lehre/wise-12-13/infoeinf WS12/13 Fehlerarten Bei der Programmierung können viele Arten von Fehlern auftreten: Syntaktische Fehler

Mehr

Ausnahmebehandlung in Java

Ausnahmebehandlung in Java Ausnahmebehandlung in Java class A { void foo() throws Help, SyntaxError {... class B extends A { void foo() throws Help { if (helpneeded()) throw new Help();... try {... catch (Help e) {... catch (Exception

Mehr

Objektorientierte Programmierung mit C Strukturierte Anweisungen: Exception Handling

Objektorientierte Programmierung mit C Strukturierte Anweisungen: Exception Handling 1.5. Strukturierte Anweisungen: Exception Handling Exceptions sind Objekte beliebigen Typs stack unwinding ruft Destruktoren aller erfolgreich konstruierten Objekte in einem catch-block kann eine Exception

Mehr

Exceptions und Vererbung

Exceptions und Vererbung Exceptions und Vererbung Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter 2. Exceptions Eigene Exceptions Handling

Mehr

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Typumwandlung

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Typumwandlung Grundkurs C++ Typumwandlung Schlüsselwort const int a = 5; const int b = 3; a = 2; // in Ordnung b = 4; // Fehler: const Variable kann nicht verändert werden Grundkurs C++ 2 const Zeiger const int* px;

Mehr

Wo und wie lange leben Objekte? globale Objekte lokale Objekte dynamische Objekte

Wo 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

Mehr

II.4.4 Exceptions - 1 -

II.4.4 Exceptions - 1 - n 1. Unterklassen und Vererbung n 2. Abstrakte Klassen und Interfaces n 3. Modularität und Pakete n 4. Ausnahmen (Exceptions) n 5. Generische Datentypen n 6. Collections II.4.4 Exceptions - 1 - Ausnahmen

Mehr

Ausnahmen. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Ausnahmen. 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 Fehlerarten Bei der Programmierung können viele Arten von Fehlern auftreten:

Mehr

Programmieren II Abstrakte Klassen / Virtuelle Methoden. Programmieren II Abstrakte Klassen / Virtuelle Methoden

Programmieren II Abstrakte Klassen / Virtuelle Methoden. Programmieren II Abstrakte Klassen / Virtuelle Methoden Einleitende Bemerkungen Einleitende Bemerkungen Aspekte Aufbau von sinnvollen Klassenhierarchien Verwaltung von Objekten unterschiedlichen Typs Mitarbeiter Besonderheiten der Anwendung jeder Angehörige

Mehr

Lösung der OOP-Prüfung WS12/13

Lösung der OOP-Prüfung WS12/13 2.1.2013 Lösung der OOP-Prüfung WS12/13 1. Aufgabe a) Da der Konstruktor im protected-bereich steht, können keine eigenständigen Objekte der Klasse angelegt werden. Durch den protected-konstruktor wird

Mehr

Programmierpraktikum 3D Computer Grafik

Programmierpraktikum 3D Computer Grafik Dipl.Inf. Otmar Hilliges Programmierpraktikum 3D Computer Grafik Einführung in C++ Teil II: Klassen, Objekte, Funktionen und Vererbung. Funktionen [Rückgabetyp] [Name] ([Parameter]) { } Wichtig: Funktionen

Mehr

1 Fehler in einem Programm

1 Fehler in einem Programm 1 Fehler in einem Programm Folgende Arten von Fehlern können bei der Programmierung auftreten: Syntaxfehler: Die Syntax legt die grammatikalischen Regeln der Programmiersprache fest. Viele Fehler in der

Mehr

Erzeugungsmuster. Kapselung der Objekt-Erzeugung

Erzeugungsmuster. Kapselung der Objekt-Erzeugung Erzeugungsmuster Kapselung der Objekt-Erzeugung Definition Erzeugungsmuster dienen für die Lose Koppelung, bei der erst zur Laufzeit der Typ des zu erzeugenden Objekts festgelegt wird. Abstract Factory

Mehr

15. Ausnahmebehandlung Programmieren / Algorithmen und Datenstrukturen 2

15. Ausnahmebehandlung Programmieren / Algorithmen und Datenstrukturen 2 15. Ausnahmebehandlung Programmieren / Algorithmen und Datenstrukturen 2 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt Wintersemester 2012 / 2013 1 Agenda Motivation Fehlerbehandlung Übung

Mehr

16. Ausnahmebehandlung Programmieren / Algorithmen und Datenstrukturen 2

16. Ausnahmebehandlung Programmieren / Algorithmen und Datenstrukturen 2 16. Ausnahmebehandlung Programmieren / Algorithmen und Datenstrukturen 2 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt Wintersemester 2012 / 2013 1 Agenda Kontrollfragen Motivation Fehlerbehandlung

Mehr

II.4.4 Exceptions - 1 -

II.4.4 Exceptions - 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.4 Exceptions - 1 - Ausnahmen (Exceptions)

Mehr

Thema heute: Vererbung und Klassenhierarchien. Abgeleitete Klassen. Vererbung von Daten und Funktionen. Virtuelle Funktionen

Thema heute: Vererbung und Klassenhierarchien. Abgeleitete Klassen. Vererbung von Daten und Funktionen. Virtuelle Funktionen 1 Thema heute: Vererbung und Klassenhierarchien Abgeleitete Klassen Vererbung von Daten und Funktionen Virtuelle Funktionen 2 Vererbung oft besitzen verschiedene Datentypen einen gemeinsamen Kern Beispiel:

Mehr

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

Mehr

Polymorphismus 44. Function.hpp. #include <string>

Polymorphismus 44. Function.hpp. #include <string> Polymorphismus 44 #include Function.hpp class Function { public: virtual ~Function() {}; virtual const std::string& get_name() const = 0; virtual double execute(double x) const = 0; }; // class

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Behandlung von Ausnahmen (engl. exceptions) im normalen Programmablauf: Fehler, die zur Programmlaufzeit entdeckt werden (z.b. Datei existiert nicht) Einführung in die Programmierung Wintersemester 2009/10

Mehr

9. Ausnahmebehandlung

9. Ausnahmebehandlung Schwerpunkte Ausnahmen und Laufzeitfehler 9. Ausnahmebehandlung Java-Beispiele: Ausnahme.java TryCatch.java TryCatchAll.java Finally.java TryInTry.java KeyboardTry.java Oeffnungszeit.java Stack-Trace Java-Ausnahmeklassen-Hierarchie

Mehr

Mapra: C++ Teil 6. Felix Gruber, Sven Groß. IGPM, RWTH Aachen. 13. Juni 2017

Mapra: C++ Teil 6. Felix Gruber, Sven Groß. IGPM, RWTH Aachen. 13. Juni 2017 Mapra: C++ Teil 6 Felix Gruber, Sven Groß IGPM, RWTH Aachen 13. Juni 2017 Felix Gruber, Sven Groß (IGPM, RWTH Aachen) Mapra: C++ Teil 6 13. Juni 2017 1 / 22 Was bisher geschah Klassen I Attribute und Methoden

Mehr

Zweck: sequentieller Zugriff auf Elemente eines Aggregats. mehrere Abarbeitungen des Aggregatinhalts

Zweck: sequentieller Zugriff auf Elemente eines Aggregats. mehrere Abarbeitungen des Aggregatinhalts Iterator (Cursor) Zweck: sequentieller Zugriff auf Elemente eines Aggregats Anwendungsgebiete: Zugriff auf Aggregatinhalt innere Darstellung bleibt gekapselt mehrere Abarbeitungen des Aggregatinhalts einheitliche

Mehr

Zweck: sequentieller Zugriff auf Elemente eines Aggregats

Zweck: sequentieller Zugriff auf Elemente eines Aggregats Iterator (Cursor) Zweck: sequentieller Zugriff auf Elemente eines Aggregats Anwendungsgebiete: Zugriff auf Aggregatinhalt innere Darstellung bleibt gekapselt mehrere Abarbeitungen des Aggregatinhalts einheitliche

Mehr

Übungen zu Middleware Universität Erlangen-Nürnberg Informatik 4, 2007 Z-Java-Exceptions.fm

Übungen zu Middleware Universität Erlangen-Nürnberg Informatik 4, 2007 Z-Java-Exceptions.fm Z.11Fehlerbehandlung Programm beenden (System.exit()) meist eine schlechte Idee Ausgabe einer Fehlermeldung hilft nicht den Fehler zu überwinden spezieller Rückgabewert kennzeichnet Fehler Konstruktoren

Mehr

Vererbung I. Kfz Eigenschaften und Methoden der Klasse Kfz Lkw. Pkw. Eigenschaften und Methoden der Klasse Kfz

Vererbung I. Kfz Eigenschaften und Methoden der Klasse Kfz Lkw. Pkw. Eigenschaften und Methoden der Klasse Kfz Einführung in C++ Vererbung I Durch Vererbung können aus bereits bestehenden Klassen neue Klassen konstruiert werden. Die neue abgeleitete Klasse erbt dabei die Daten und Methoden der sog. Basisklasse.

Mehr

Angewandte Mathematik in OOP WS 2011/12. Abschluss-Test

Angewandte Mathematik in OOP WS 2011/12. Abschluss-Test Angewandte Mathematik in OOP WS 2011/12 Abschluss-Test 012 6 5 4 5 6 Aufgabe 1 (9 Punkte 1 Punkt je Antwort) Bitte jeweils eine Antwort ankreuzen (je nach Fragestellung die richtige oder falsche): a.)

Mehr

Grundkurs C++ Typwandlung Ausnahmebehandlung

Grundkurs C++ Typwandlung Ausnahmebehandlung Grundkurs C++ Typwandlung Ausnahmebehandlung Martin Knopp, Martin Gottwald, Stefan Röhrl 02.05.2018 Folie 1/25 GK C++: Typwandlung & Fehlerbehandlung Martin Knopp, Martin Gottwald, Stefan Röhrl 02.05.2018

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Operatoren Operatoren führen Aktionen mit Operanden aus. Der

Mehr

Polymorphismus 179. Function.h. #include <string>

Polymorphismus 179. Function.h. #include <string> Polymorphismus 179 #include Function.h class Function { public: virtual ~Function() {}; virtual std::string get_name() const = 0; virtual double execute(double x) const = 0; }; // class Function

Mehr

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Inhalt Test-Besprechung! Ziele verdeutlichen Große Bild von OOP Wiederholung: Einbettung als Technik

Mehr

Kapitel 9. Ausnahmebehandlung in Java. Skript zur Vorlesung Einführung in die Programmierung

Kapitel 9. Ausnahmebehandlung in Java. Skript zur Vorlesung Einführung in die Programmierung LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE Kapitel 9 Ausnahmebehandlung in Java Skript zur Vorlesung Einführung in die Programmierung im Wintersemester 2012/13

Mehr

Einführung in die Programmierung Wintersemester 2017/18

Einführung in die Programmierung Wintersemester 2017/18 Einführung in die Programmierung Wintersemester 2017/18 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Ausnahmebehandlung Inhalt Ausnahmen: Konzept Ausnahmehierarchien

Mehr

C++ - Objektorientierte Programmierung Konstante und statische Elemente

C++ - Objektorientierte Programmierung Konstante und statische Elemente C++ - Objektorientierte Programmierung Konstante und statische Elemente hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja

Mehr

12 Abstrakte Klassen, finale Klassen und Interfaces

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

Mehr

Programmieren - C++ Ausnahmebehandlung

Programmieren - C++ Ausnahmebehandlung Programmieren - C++ Ausnahmebehandlung Reiner Nitsch 8417 r.nitsch@fbi.h-da.de Übliche Fehlersituationen (meist in aufgerufenen Funktionen) Teilen durch 0 (Null) Vorbedingungen nicht erfüllt Indexbereich

Mehr

15. C++ vertieft (IV): Ausnahmen (Exceptions)

15. C++ vertieft (IV): Ausnahmen (Exceptions) Was kann schon schiefgehen? Öffnen einer Datei zum Lesen oder Schreiben std::ifstream input("myfile.txt"); 15. C++ vertieft (IV): Ausnahmen (Exceptions) Parsing int value = std::stoi("12 8"); Speicherallokation

Mehr

Objektorientierte Programmierung mit C++ SS 2007

Objektorientierte Programmierung mit C++ SS 2007 Objektorientierte Programmierung mit C++ SS 2007 Andreas F. Borchert Universität Ulm 5. Juni 2007 Polymorphismus #include Function.h class Function { public: virtual ~Function() {}; virtual std::string

Mehr

C++ - Objektorientierte Programmierung Polymorphie

C++ - Objektorientierte Programmierung Polymorphie C++ - Objektorientierte Programmierung Polymorphie hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen C++ - Objektorientierte Programmierung 21.06.16 Seite 1 Polymorphie

Mehr

Programmieren I. Fehlerbehandlung Exceptions. Heusch 2. Bd, 3 Ratz 10. Institut für Angewandte Informatik

Programmieren 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

Mehr

Einführung in die Programmierung Wintersemester 2008/09

Einführung in die Programmierung Wintersemester 2008/09 Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Virtuelle Methoden Vererbung bisher: Definition

Mehr

Aufbau von Klassen. class punkt {...

Aufbau von Klassen. class punkt {... Einführung in C++ Aufbau von Klassen Eine wird mit dem Schlüsselwort class eingeleitet, und endet mit einem Semikolon. Der Inhalt wird zwischen geschweiften Klammern geschrieben. class punkt {... ; Im

Mehr

Abschnitt 7: Weitere Konzepte der oo Programmierung in Java

Abschnitt 7: Weitere Konzepte der oo Programmierung in Java Abschnitt 7: Weitere Konzepte der oo Programmierung in Java 7. Weitere Konzepte der oo Programmierung in Java 7.1 Peer Kröger (LMU München) Einführung in die Programmierung WS 14/15 596 / 627 Überblick

Mehr

Polymorphie/Späte Bindung Abstrakte Klassen Interfaces. Polymorphie/Späte Bindung Abstrakte Klassen Interfaces

Polymorphie/Späte Bindung Abstrakte Klassen Interfaces. Polymorphie/Späte Bindung Abstrakte Klassen Interfaces Programmieren I Martin Schultheiß Hochschule Darmstadt Wintersemester 2010/2011 1 / 20 Polymorphie/Späte Bindung Abstrakte Klassen Interfaces 2 / 20 Definition: Polymorphie Der Begriff Polymorphie (manchmal

Mehr

Zuverlässigkeit von Programmen: Behandlung von Ausnahmesituationen

Zuverlässigkeit von Programmen: Behandlung von Ausnahmesituationen Zuverlässigkeit von Programmen: Behandlung von Ausnahmesituationen 6.1 Behandlung von Ausnahmesituationen 6.3 Die Zusicherungsanweisung 6.1 Behandlung von Ausnahmesituationen 6-1 ArithmeticException import

Mehr

1 Abstrakte Klassen, finale Klassen und Interfaces

1 Abstrakte Klassen, finale Klassen und Interfaces 1 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,

Mehr

C# - Einführung in die Programmiersprache Fehler abfangen. Leibniz Universität IT Services Anja Aue

C# - Einführung in die Programmiersprache Fehler abfangen. Leibniz Universität IT Services Anja Aue C# - Einführung in die Programmiersprache Fehler abfangen Leibniz Universität IT Services Anja Aue Fehler in einem Programm Warnungen sind Hinweise auf eventuelle Fehler während der Laufzeit des Programms.

Mehr

Einführung in die Programmierung mit Java

Einführung in die Programmierung mit Java Einführung in die Programmierung mit Java Teil 9: Ausnahmebehandlung Martin Hofmann Steffen Jost LFE Theoretische Informatik, Institut für Informatik, Ludwig-Maximilians Universität, München 8. Dezember

Mehr

Programmierung und Angewandte Mathematik

Programmierung und Angewandte Mathematik Programmierung und Angewandte Mathematik C++ /Scilab Programmierung und Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens SS 2012 Inhalt Compiler/Editor Klassendeklaration

Mehr

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 2. Teil

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 2. Teil MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 2. Teil 18. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 27 Einstieg in die Informatik mit Java Klassen als Datenstrukturen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 27 1 Überblick: Klassen als Datenstruktur 2 Vereinbarung

Mehr

Kapitel 10. Programmierkurs. Grundlagen von Exceptions Behandlung von Exceptions

Kapitel 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

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

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen Teil 5 - Java Programmstruktur Operatoren Schlüsselwörter Datentypen 1 Kommentare in Java In Java gibt es drei Möglichkeiten zur Kommentierung: // Kommentar Alle Zeichen nach dem // werden ignoriert. für

Mehr

Einführung in die Programmierung mit C++

Einführung in die Programmierung mit C++ 1 Seite 1 Einführung in die Programmierung mit C++ Teil III - Objektorientierte Programmierung 9. Klassen und Methoden Was sind Klassen? Seite 2 sprachliches Mittel von C++ um objektorientierte Programmierung

Mehr

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 13. Java Ausnahmebehandlung 1 Motivation

Mehr

Ausnahmen. Gilbert Beyer und Annabelle Klarl. Einführung in die Informatik. Zentralübung zur Vorlesung Einführung in die Informatik

Ausnahmen. Gilbert Beyer und Annabelle Klarl. Einführung in die Informatik. Zentralübung zur Vorlesung Einführung in die Informatik Ausnahmen Zentralübung zur Vorlesung http://www.pst.ifi.lmu.de/lehre/wise-11-12/infoeinf WS11/12 Inhalte der heutigen Vorlesung: Arten von Fehlern Auslösen von Ausnahmen Vermeiden von Ausnahmen Ausnahmeklassen

Mehr

9. Ausnahmebehandlung

9. Ausnahmebehandlung 9. Ausnahmebehandlung Java-Beispiele: Ausnahme.java TryCatch.java TryCatchAll.java Finally.java TryInTry.java KeyboardTry.java Oeffnungszeit.java Version: 11. Jan. 2016 Schwerpunkte Ausnahmen und Laufzeitfehler

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2017/18 Ausnahmen: Konzept Ausnahmehierarchien Ausnahmen im Konstruktor / Destruktor Anwendungen ADT Stack Ex-Klausuraufgabe Prof. Dr. Günter Rudolph

Mehr

Objektorientierte Programmierung mit C++

Objektorientierte Programmierung mit C++ Ziel: maximales Code-Sharing -- Weg: gemeinsame (aber ggf. in Ableitungen variierende) Funktionalität in Basisklassen festlegen Problem: die so entstehenden Basisklassen sind oft so rudimentär, dass Objekterzeugung

Mehr

Institut für Programmierung und Reaktive Systeme 25. Januar Programmieren I. Übungsklausur

Institut für Programmierung und Reaktive Systeme 25. Januar Programmieren I. Übungsklausur Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 25. Januar 2018 Hinweise: Klausurtermine: Programmieren I Übungsklausur Programmieren I: 17. Februar

Mehr

Grundlagen der Informatik

Grundlagen der Informatik Grundlagen der Informatik Polymorphie, Abstrakte Klassen, Mehrfachvererbung Prof. Dr.-Ing. Thomas Wiedemann Prof. Dr. rer.nat. Ralph Großmann Fachgebiet Informatik / Mathematik Überblick zum Inhalt Klassen-3

Mehr

System.out.println("TEXT");

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

Mehr

Repetitorium Programmieren I + II

Repetitorium Programmieren I + II Repetitorium Programmieren I + II Stephan Gimbel Johanna Mensik Michael Roth 6. März 2012 Agenda 1 Operatoren 2 Datentypen Gleitpunkt Zahl Typkonvertierung 3 Strommanipulatoren 4 Bedingungen if-else switch-case

Mehr

Die abstrakte Klasse Expression:

Die abstrakte Klasse Expression: Die abstrakte Klasse Expression: Expression abstract evaluate() Add Neg Const 501 Die abstrakte Klasse Expression: Expression abstract evaluate() Add Neg Const Leider (zum Glück?) lässt sich nicht die

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf  Seite 1 von 29 Kapitel 2 Einführung in C++ Seite 1 von 29 C++ Zeichensatz - Buchstaben: a bis z und A bis Z. - Ziffern: 0 bis 9 - Sonderzeichen: ; :,. # + - * / % _ \! < > & ^ ~ ( ) { } [ ]? Seite 2 von 29 Höhere Elemente

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

14 Abstrakte Klassen, finale Klassen, Interfaces

14 Abstrakte Klassen, finale Klassen, Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse

Mehr

Remote Method Invocation

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

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

Ausnahmebehandlung. Ausnahmen werfen (auslösen) Eigene Ausnahmen definieren. Ausnahmen abfangen. Ausnahmen definieren

Ausnahmebehandlung. 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,

Mehr

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung Beispiele für Ausdrücke Der imperative Kern Deklarationen mit Initialisierung Variablendeklarationen int i = 10; int j = 15; Beispiele für Ausdrücke i+j i++ i & j i j [] [static]

Mehr

14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen

14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen Auswertung von Ausdrücken Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt.

Mehr

Johannes Unterstein - TINF16 - Java - Sommersemester 2017 JAVA. Weiterführende Spracheigenschaften

Johannes Unterstein - TINF16 - Java - Sommersemester 2017 JAVA. Weiterführende Spracheigenschaften JAVA Weiterführende Spracheigenschaften 100 AGENDA Strings Exceptions Enums Generics Lambdas & Methods Bulk-Operations 101 DIE KLASSE STRING Zeichenketten werden in Java als String repräsentiert Wie der

Mehr

Tag 8 Repetitorium Informatik (Java)

Tag 8 Repetitorium Informatik (Java) Tag 8 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium

Mehr

14 Abstrakte Klassen, finale Klassen, Interfaces

14 Abstrakte Klassen, finale Klassen, Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse

Mehr

Software Entwicklung 1. Rekursion. Beispiel: Fibonacci-Folge I. Motivation. Annette Bieniusa / Arnd Poetzsch-Heffter

Software Entwicklung 1. Rekursion. Beispiel: Fibonacci-Folge I. Motivation. Annette Bieniusa / Arnd Poetzsch-Heffter Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Rekursion Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 27 Motivation Beispiel: Fibonacci-Folge

Mehr