Kapitel 1 - Widerholungsfragen

Größe: px
Ab Seite anzeigen:

Download "Kapitel 1 - Widerholungsfragen"

Transkript

1 Kapitel 1 - Widerholungsfragen 1. Erklären Sie folgende Begriffe: Objekt Ein Objekt ist eine logische Einheit, bestehend aus zusammengehörigen Variablen und Routinen. Klasse Eine Klasse beschreibt die Struktur der ihr zugehörigen Objekte im Detail. Dazu gehören Eigenschaften, Methoden, Konstsruktoren, Destruktoren, etc. Vererbung Vererbung ermöglicht es, neue Klassen (subclasses) von bereits existierenden Klassen (superclasses) abzuleiten. Änderungen können mittels Erweitern oder mittels Überschreiben vorgenommen werden. Identität Objekte sind durch ihre Identität eindeutig gekennzeichnet und daher auch über diese ansprechbar. Vereinfacht kann man sich die Identität als die Adresse des Objekts im Speicher vorstellen. Das ist aber nur bedingt richtig, da sich die Speicheradresse eines Objekts ändern kann, die Identität aber erhalten bleibt. Zustand Der Zustand eines Objekts setzt sich aus den Werten der Variablen im Objekt zusammen. Dieser ist zur Laufzeit abänderbar. Verhalten Das Verhalten eines Objekts beschreibt, wie sich das Objekt beim Empfang einer Nachricht verhält, also was das Objekt beim Aufruf einer Methode macht. Schnittstelle Sie beschreibt das öffentlich sichtbare Verhalten und entspricht dem Typen eines Objekts. Die Bezeichnungen white box, grey box, black box beschreiben den Grad an öffentlichen Methoden. Instanz einer Klasse, einer Schnittstelle und eines Typs Die Instanzen einer Klasse sind jene Objekte, die durch Konstruktoren der Klasse erzeugt wurden. Genauer gesagt, sind die Objekte Instanzen der durch die Klasse beschriebenen Schnittstellen bzw. Typen. Die Klasse selbst ist die spezifischste aller Schnittstellen zu der das Objekt gehört, da sie das Verhalten am genauesten beschreibt. Deklarierter Typ Der deklarierte Typ ist jener Typ, mit dem die Variable deklariert wurde. Er kann klarerweise nur bei expliziter Typdeklaration existieren. Statischer Typ Der statische Typ wird vom Compiler statisch ermittelt und kann spezifischer als der deklarierte Typ sein. Statische Typen zum Beispiel für Programmoptimierung verwendet. Dabei hängt es vom der Qualität des Compilers ab, wie spezifisch der statische Typ ist. Dynamischer Typ Das ist der spezifischste Typ den der in der Variable gespeicherte Wert tatsächlich hat. Er ist in der Regel spezifischer als der deklarierte Typ und wird zum Beispiel zur dynamischen Typüberprüfung während der Laufzeit verwendet. Nachricht Objekte können während ihrer Lebenszeit Nachrichten austauschen. Dies ist als das Aufrufen von Methoden und Übersenden von Rückgabewerten zu verstehen.

2 Methode Eine Methode ist eine Routine eines Objekts. Das Verhalten eines Objekts beim Aufruf einer Methode ist von der Art und dem Inhalt der formalen Parameter der Methode abhängig. Konstruktor Objekte einer Klasse werden durch einen Konstruktor erzeugt. Er ist eine spezielle Methode der Klasse. Faktorisierung Unter Faktorisierung versteht man das Zusammenfassen zusammengehöriger Eigenschaften und Aspekte des Programms zu Einheiten. Gute Faktorisierung wirkt sich positiv auf die Wartbarkeit eines Programms aus. Refaktorisierung Unter Refaktorisierung versteht man die Anpassung der Struktur eines Programms an neue oder unbedachte Gegebenheiten. Gute Faktorisierung kann den Aufwand von Refaktorisierung vermindern. Verantwortlichkeiten was ich weiß Beschreibung des Zustands der Instanzen was ich mache Verhalten der Instanzen wen ich kenne sichtbare Objekte, Klassen, etc. Klassen-Zusammenhalt Der Klassen-Zusammenhalt ist hoch, wenn alle Variablen und Methoden der Klasse end zusammenarbeiten und der Name der Klasse gut beschrieben ist. Objekt-Kopplung Die Objekt-Kopplung ist hoch, wenn die Anzahl der nach außen sichtbaren Methoden und Variablen hoch ist, im laufenden System Methodenaufrufe und Variablenzugriffe zwischen unterschiedlichen Objekten häufig auftreten und die Anzahl der Parameter dieser Methoden hoch ist. Softwareentwurfsmuster Softwareentwurfsmuster geben Problemstellungen in der Softwareentwicklung einen Namen und bieten erprobte Lösungswege best practices dafür an. Da sie meist nicht 1:1 anwendbar sind, wählt man jenen Weg, der am wenigsten andere Nachteile mit sich bringt. Konsequenzen sind oft die Aufblähung eines Systems, sowie eine schlechtere Übersichtlichkeit desselben. 2. Welche Arten von Polymorphismus unterscheidet man? Welche davon sind in der objektorientierten Programmierung wichtig? Warum? Man unterscheidet zwischen universellen- und Ad-hoc-Polymorphismus. Zum universellen Polymorphismus zählen Generizität und enthaltender Polymorphismus, zum Ad-hoc- Polymorphismus zählen das Überladen von Methoden und Typumwandlungen. Nur der universelle Polymorphismus ist für die objektorientierte Programmierung wichtig, da nur hier eine gleichförmige Struktur der untereinander in Beziehung stehenden Typen besteht. Weder das Überladen von Methoden, noch die Typumwandlung sind spezifisch für die objektorientierte Programmierung. 3. Wann sind zwei Objekte identisch, und wann sind zwei identische Objekte gleich? Es gibt keine zwei identen Objekte. Zwei unterschiedlich benannte Referenzen können höchstens auf ein und dasselbe Objekt verweisen. Zwei Objekte sind genau dann gleich, wenn sie denselben Zustand und dasselbe Verhalten aufweisen (Kopien voneinander sind).

3 4. Sind Datenabstraktion, Datenkapselung und data hiding einander entsprechende Begriffe? Wenn Nein, worin unterscheiden sie sich? Nein, sind sie nicht! Unter Datenkapselung versteht man das Zusammenfassen zusammengehöriger Aspekte eines Programms zu einer Einheit (Kapsel). Unter data hiding versteht man das verstecken von Daten und Implementierungen. Datenabstraktion ist ein Sammelbegriff für Datenkapselung und data hiding. 5. Was besagt das Ersetzbarkeitsprinzip? Dies besagt, dass ein Typ U genau dann ein Untertyp vom Typen T ist, wenn eine Instanz vom Typ U überall dort eingesetzt werden kann, wo eine Instanz vom Typen T erwartet wird. 6. Nennen Sie die Schritte im Softwareentwicklungsprozess entsprechend dem Wasserfallmodell und zyklischen Modellen. Das Wasserfallmodellen besteht aus den Schritten: Analyse, Entwurf, Implementierung sowie Verifikation und Validierung. Zyklische Modelle wenden das Wasserfallmodell in Form schrittweiser Verfeinerung auf das Gesamtprojekt an, indem Teilaspekte immer weiter ausgebaut und ständig verifiziert und validiert werden. 7. Warum ist eine gute Wartbarkeit so wichtig? Änderungen der Software können rascher durchgeführt werden, langfristige Kosten können dadurch gesenkt werden. 8. Wie lauten die wichtigsten Faustregeln im Zusammenhang mit Klassen- Zusammenhalt und Objekt-Kopplung? Welche Vorteile erwartet man sich davon, dass diese Faustregeln erfüllt sind? Der Klassen-Zusammenhalt soll hoch sein. Hoher Klassen-Zusammenhalt deutet auf eine gute Faktorisierung hin. Bei guter Faktorisierung muss die Struktur einer Software nur minimal an Änderungen angepasst werden. Die Objekt-Kopplung soll schwach sein. Schwache Objekt-Kopplung deutet auf eine gute Kapselung hin. Bei Änderungen werden vermutlich weniger Objekte beeinflusst als bei starker Objekt-Kopplung. 9. Welche Arten von Software kann man wieder verwenden, und welche Rolle spielt jede davon in der Softwareentwicklung? Programme, Daten, Erfahrungen ( best practices ) und Code. Unter Code unterscheidet man weiters zwischen globalen- und fachspezifischen Bibliotheken, projektinterner- und programminterner Wiederverwendung. 10. Welche Rolle spielen Refaktorisierungen in der Wiederverwendung? Besonders bei weniger erfahrenen Programmierern kann der erhöhte Zeit- und Kostenaufwand bei der Erstellung wiederverwendbarer Software zum Scheitern des Projekts führen. Im Zweifelsfall sollte erst nach Fertigstellung des Projekts und nach Bedarf eine Refaktorisierung für Wiederverwendung erwogen werden. 11. Nennen Sie die wichtigsten Paradigmen der Programmierung und ihre essentiellen Eigenschaften. Zur Imperativen Programmierung gehören die Prozedurale- und die Objektorientierte Programmierung, zur Deklarativen Programmierung gehören die Funktionale- und die Logikorientierte Programmierung.

4 12. Wofür ist die objektorientierte Programmierung gut geeignet, und wofür ist sie nicht gut geeignet? Objektorientierte Programmierung eignet sich zur Entwicklung von Systemen, deren Gesamtkomplexität jene der einzelnen Algorithmen deutlich übersteigt. Sonst sind andere Paradigmen besser geeignet. Kapitel 2 Wiederholungsfragen 13. In welcher Form kann man durch das Ersetzbarkeitsprinzip Wiederverwendung erzielen? Durch das Einhalten des Ersetzbarkeitsprinzips können Fehler in der Klassenhierarchie vermieden und Schnittstellen stabil gehalten werden. Dadurch ergeben sich ein paar Möglichkeiten zur Wiederverwertung, s. Beispiel Treiberversionen. 14. Unter welchen Bedingungen, die von einem Compiler überprüfbar sind, ist ein Typ im Allgemeinen Untertyp eines anderen Typs? Welche zusätzlichen Bedingungen müssen in Java gelten? Typen von Konstanten und Ergebnistypen müssen kovariant, Typen formaler Parameter kontravariant und Variablentypen invariant sein. In Java muss zudem zwischen den beiden Klassen eine Vererbungsbeziehung bestehen. 15. Sind die in Punkt 14 angeschnittenen Bedingungen hinreichend, damit das Ersetzbarkeitsprinzip erfüllt ist? Wenn nicht, was muss noch beachtet werden? Damit das Ersetzbarkeitsprinzip vollständig erfüllt sein kann, muss der Programmierer den Vertrag zwischen Client- und Serverklassen implementieren. 16. Welche Rolle spielt dynamisches Binden für die Ersetzbarkeit und Wartbarkeit? Durch den Einsatz dynamischen Bindens können Änderungen rascher Angepasst werden, die Lokalität bleibt gewährleistet, was wiederum und Wartbarkeit verbessert. 17. Welche Arten von Zusicherungen werden unterschieden, und wer ist für deren Einhaltung verantwortlich? Vorbedingungen (dafür ist der Client verantwortlich), Nachbedingungen (dafür ist der Server verantwortlich) und Invarianten (für die ebenfalls der Server vor und nach Aufruf einer seiner Methoden zuständig ist). 18. Wie müssen sich Zusicherungen in Unter- und Obertypen zueinander verhalten, damit das Ersetzbarkeitsprinzip erfüllt ist? Vorbedingungen im Untertypen dürfen nur schwächer werden (mittels ODER), Nachbedingungen und Invarianten dürfen im Untertypen nur stärker sein (mittels UND). 19. Warum sollen Schnittstellen und Typen stabil bleiben? Wo ist Stabilität besonders wichtig? Nachträgliche Änderungen wurden sich über die gesamte zu Grunde liegende Vererbungshierarchie ausbreiten. Während Blätter zwecks Stabilitätsgewinnung noch leicht refaktorisiert werden können, müssen Elemente zur Wurzel hin stabil bleiben. 20. Was ist im Zusammenhang mit allgemein zugänglichen (public) Variablen und Invarianten zu beachten? (Öffentliche) Variablen von außen zu verändern sollte man auf jeden Fall unterlassen. Sind dabei Invarianten betroffen, könnte dies zu einer Verletzung des Vertrags führen.

5 21. Wie genau sollen Zusicherungen spezifiziert sein? Zusicherungen sollten möglichst allgemein gehalten werden. Je genauer die Zusicherungen formuliert sind, desto eher ist die Stabilität gefährdet. 22. Wozu dienen abstrakte Klassen und abstrakte Methoden? Wo und wie soll man abstrakte Klassen einsetzen? Abstrakte Klassen können zwar nicht instanziert werden, eignen sich aber zum Definieren von Typen. Abstrakte Methoden müssen in den Untertypen implementiert werden. Abstrakte Klassen ohne Implementierungen eigenen sich gut als Obertypen, da sie eher stabil sind und man immer von stabilen Typen ableiten soll. 23. Ist Vererbung dasselbe wie das Ersetzbarkeitsprinzip? Wenn Nein, wo liegen die Unterschiede? Für eine reine Vererbungsbeziehung ist das Ersetzbarkeitsprinzip irrelevant. Letzteres ist eine Einschränkung der Freiheiten des Programmierers, Vererbungstechniken willkürlich zu Gunsten von Untertypbeziehungen einzusetzen. 24. Worauf kommt es zur Erzielung von Codewiederverwertung eher an Auf Vererbung oder Ersetzbarkeit Warum? Auf Ersetzbarkeit! Vererbungsbeziehungen bieten auf den ersten Blick die bessere Codewiederverwertung, allerdings verzichtet man auf Untertypbeziehungen, die Codewiederverwertung im noch größeren Umfang bewirken können und ein wichtiges Instrument der objektorientierten Programmierung sind. 25. Was bedeuten folgende Begriffe in Java? Instanzvariable Instanzvariablen sind jene Variablen die zu den Instanzen der Klasse gehören. Jede Instanz verfügt über eine eigene Kopie dieser Variable. Klassenvariable Klassenvariablen gehören zur Klasse selbst. Schreibzugriffe auf eine Klassenvariable wirken sich auf alle Instanzen aus. statische Methode Statische Methoden gehören ebenfalls zur Klasse selbst und werden über den Namen der Klasse aufgerufen. this ist innerhalb von statischen Methoden nicht verfügbar. static initializer Der static initializer ist ein Block für Initialisierungen von statischen Variablen, ähnlich dem Konstruktor für Instanzvariablen. Geschachtelte und innere Klasse Es gibt zwei Arten geschachtelter Klassen: statische geschachtelte Klassen und innere Klassen. Statische geschachtelte Klassen dürfen nur auf statische Felder der umschließenden Klasse zugreifen. Innere Klassen gehören zur Instanz der umschließenden Klasse und dürfen weder statische Methoden noch statisch geschachtelte Methoden enthalten. Abgesehen davon entsprechen geschachtelte Klassen den nicht geschachtelten Klassen: sie können abstract sein und von anderen Klassen erben. final Klasse und final Methode Von final Klassen kann nicht geerbt werden, final Methoden können nicht im Untertypen überschrieben werden. Paket

6 Ein Paket dient der Schaffung einer Struktur für Klassen. Zusammengehörige Klassen sollen sich in einem Paket befinden. 26. Wo gibt es in Java Mehrfachvererbung, wo Einfachvererbung? Mehrfachvererbung wird in Java mittels implementierter Interfaces realisiert, Einfachvererbung mittels Erweiterung von Klassen. 27. Welche Arten von import-deklarationen kann man in Java unterscheiden? Man kann einzelne Klassen oder alle Klassen eines Pakets per Wildcard (*) importieren. 28. Welche Möglichkeiten zur Spezifikation der Sichtbarkeit gibt es in Java, und wann soll man welche Möglichkeit wählen? Public, private, protected und default (package access). Methoden, Konstanten und Variablen die bei der Verwendung der Klasse oder ihrer Instanzen benötigt werden, müssen public sein. Methoden, Konstanten und Variablen die nur innerhalb der Klasse verwendet werden, sollen private sein. Methoden und Variablen, die für die Verwendung einer Klasse oder ihrer Instanzen nicht benötigt werden, aber für spätere Erweiterungen benötigt werden könnten, sollen protected sein. 29. Was sind Interfaces in Java, und wodurch unterscheiden sie sich von abstrakten Klassen? Wann soll man Interfaces verwenden? Wann sind abstrakte Klassen besser geeignet? Interfaces sind Definitionen von Schnittstellen. Es dürfen keine Variablen, nur Konstanten definiert werden, alle Methoden sind automatisch public. Die Schlüsselwörter static, final, private und protected dürfen in Methodendeklarationen nicht vorkommen. Interfaces sind auf Grund von Mehrfachvererbung mittels implements flexibler einsetzbar als Klassen und sind wegen der höheren Stabilität (fehlende Implementierungen) besser geeignet als Klassen. Kapitel 3 Wiederholungsfragen 30. Was ist Generizität? Wozu verwendet man Generizität? Generizität ist neben enthaltendem Polymorphismus eine weitere Form des universellen Polymorphismus. Generizität wird zur Erstellung generischer Klassen mit Typparametern eingesetzt. Der Vorteil liegt in der statischen Typsicherheit sowie in der Codeersparnis bei sich nur durch jeweils einen Typen voneinander unterscheidenden Klassen. 31. Was ist gebundene Generizität? Was kann man mit Schranken auf Typparametern machen, was ohne Schranken nicht geht? Bei gebundener Generizität wird auf einem Typparameter eine Schranke definiert. Durch diese Schranke ist der zu verwendende Typ näher spezifizierbar (im Gegensatz zu einfacher Generizität). Wird keine Schranke definiert, so wird implizit Object als Schranke angenommen. 32. In welchen Fällen soll man Generizität einsetzen, in welchen nicht? In erster Linie sollte man Ersetzbarkeit anwenden, in zweiter Linie Generizität. 33. Was bedeutet statische Typsicherheit? Der Compiler garantiert bereits, dass tatsächlich nur erwartete Typen verwendet werden. Dadurch werden Typkonvertierungsfehler zur Laufzeit ausgeschlossen.

7 34. Welche Arten von Generizität hinsichtlich ihrer Übersetzung und ihrem Umgang mit Schranken kann man unterscheiden? Welche davon wird in generischem Java verwendet, und wie flexibel ist diese Lösung? Was sind (gebundene) Wildcards als Typen in Java? Wozu kann man sie verwenden? Gebundene Wildcards definieren eine Schranke auf einem formalen Parameter einer Methode bei der Verwendung eines generischen Typen. z.b.: public meth(list<? extends Polygon> p) { } 36. Wie kann man Generizität simulieren? Worauf verzichtet man, wenn man Generizität nur simuliert? 37. Was wird bei der heterogenen bzw. homogenen Übersetzung von Generizität genau gemacht? 38. Welche Möglichkeiten für dynamische Typabfragen gibt es in Java, und wie funktionieren sie genau? 39. Was wird bei einer Typumwandlung in Java umgewandelt der deklarierte, dynamische oder statische Typ? Warum? 40. Welche gefahren bestehen bei Typumwandlungen? 41. Wie kann man dynamische Typabfragen und Typumwandlungen vermeiden? In welchen Fällen kann das schwierig sein? 42. Welche Arten von Typumwandlungen sind sicher? Warum? 43. Was sind kovariante Probleme und binäre Methoden? Wie kann man mit ihnen umgehen oder sie vermeiden? 44. Wie unterscheidet sich Überschreiben von Überladen, und was sind Multimethoden? 45. Wie kann man Multimethoden simulieren? Welche Probleme können dabei auftreten? 46. Was ist das Visitor-Entwurfsmuster? 47. Wodurch ist das Überladen problematisch, und in welchen Fällen ergeben sich kaum Probleme? 48. Wie werden Ausnahmebehandlungen in Java unterstützt?

8 49. Wie sind Ausnahmen in Untertypbeziehungen zu berücksichtigen? 50. Wozu kann man Ausnahmen verwenden? Wozu soll man sie verwenden, wozu nicht?

Objektorientierte Konzepte

Objektorientierte Konzepte Objektorientierte Konzepte Objekt Klasse enthaltender Polymorphismus (Untertypen) Vererbung Objektorientierte Programmierung, Grundlagen und Ziele 1 Objekt Objekt kapselt Variablen und Routinen Interaktionen

Mehr

1. In welchen Formen (mindestens zwei) kann man durch das Ersetzbarkeitsprinzip Wiederverwendung erzielen?

1. In welchen Formen (mindestens zwei) kann man durch das Ersetzbarkeitsprinzip Wiederverwendung erzielen? Kapitel 2 1. In welchen Formen (mindestens zwei) kann man durch das Ersetzbarkeitsprinzip Wiederverwendung erzielen? 1. Durch das Verwenden von Untertypbeziehungen: Untertypen können oft einen Großteil

Mehr

Programmierparadigmen

Programmierparadigmen Programmierparadigmen Paradigma = Denkweise oder Art der Weltanschauung klassische Einteilung: Programmiersprache imperativ deklarativ prozedural objektorientiert funktional logisch Zusammenhänge tatsächlich

Mehr

Programmierparadigmen A01 OOP. Programmierparadigmen

Programmierparadigmen A01 OOP. Programmierparadigmen 2013-10-09 Programmierparadigmen 1 185.A01 OOP Programmierparadigmen 2013-10-09 Programmierparadigmen 2 OOP Klassische Programmierparadigmen Paradigma = Denkweise oder Art der Weltanschauung klassische

Mehr

Arten von Klassen-Beziehungen

Arten von Klassen-Beziehungen Arten von Klassen-Beziehungen Untertypbeziehung: Ersetzbarkeit Vererbung von Code aus Oberklasse irrelevant Vererbungsbeziehung: Klasse entsteht durch Abänderung anderer Klassen Ersetzbarkeit irrelevant

Mehr

Interaktionen zwischen Objekten durch Senden von Nachrichten und Reagieren auf empfangene Nachrichten

Interaktionen zwischen Objekten durch Senden von Nachrichten und Reagieren auf empfangene Nachrichten Objekt Objekt kapselt Variablen und Routinen Interaktionen zwischen Objekten durch Senden von Nachrichten und Reagieren auf empfangene Nachrichten Eigenschaften jedes Objekts: Identität (identisch = mehrere

Mehr

Geschachtelte Klassen

Geschachtelte Klassen Geschachtelte Klassen Christian Schamott 1 / 26 Übersicht Gemeinsamkeiten 4 Arten geschachtelte Klassen Elementklasse Lokale Klassen Anonyme Klassen Statisch geschachtelte Klassen Christian Schamott 2

Mehr

OOP. Tagesprogramm. Beziehungen zwischen Typen Vererbung Sichtbarkeit

OOP. Tagesprogramm. Beziehungen zwischen Typen Vererbung Sichtbarkeit 1 2016-11-16 Tagesprogramm Beziehungen zwischen Typen Vererbung Sichtbarkeit 2 2016-11-16 Beziehungen zwischen Typen Abstrakte Klassen und Interfaces public abstract class Polygon { public abstract void

Mehr

OOP Fragenausarbeitung

OOP Fragenausarbeitung OOP Fragenausarbeitung Kapitel 2: Enthaltender Polymorphismus und Vererbung 1. In welcher Form kann man durch das Ersetzbarkeitsprinzip Wiederverwendung erzielen? Durch das Verwenden von Untertypbeziehungen.

Mehr

Faustregeln zu Zusicherungen

Faustregeln zu Zusicherungen Faustregeln zu Zusicherungen Zusicherungen sollen stabil sein (vor allem an Wurzel der Typhierarchie) keine unnötigen Details festlegen explizit im Programm stehen unmissverständlich formuliert sein während

Mehr

Das Ersetzbarkeitsprinzip

Das Ersetzbarkeitsprinzip Das Ersetzbarkeitsprinzip U ist Untertyp von T, wenn eine Instanz von U überall verwendbar ist, wo eine Instanz von T erwartet wird Dieses Ersetzbarkeitsprinzip benötigt man für den Aufruf einer Routine

Mehr

Untertypen, Vererbung, Sichtbarkeit A01 OOP. Untertypen, Vererbung, Sichtbarkeit

Untertypen, Vererbung, Sichtbarkeit A01 OOP. Untertypen, Vererbung, Sichtbarkeit 2013-10-30 Untertypen, Vererbung, Sichtbarkeit 1 185.A01 OOP Untertypen, Vererbung, Sichtbarkeit 2013-10-30 Untertypen, Vererbung, Sichtbarkeit 2 OOP Abstrakte Klassen Polygon ւ ց Triangle Square Hexagon

Mehr

Das Ersetzbarkeitsprinzip

Das Ersetzbarkeitsprinzip Das Ersetzbarkeitsprinzip U ist Untertyp von T, wenn eine Instanz von U überall verwendbar ist, wo eine Instanz von T erwartet wird Dieses Ersetzbarkeitsprinzip benötigt man für den Aufruf einer Routine

Mehr

Thomas W Zusammenfassung Objektorientierte Programmierung WS 06/07. Zusammenfassung. Objektorientierte Programmierung WS 06/07.

Thomas W Zusammenfassung Objektorientierte Programmierung WS 06/07. Zusammenfassung. Objektorientierte Programmierung WS 06/07. Zusammenfassung Objektorientierte Programmierung WS 06/07 Autor: Thomas W Hinweise Ich empfehle jedem, das Skriptum vor der mündlichen Prüfung durchgelesen und verstanden zu haben, und übernehme (natürlich)

Mehr

Programmierparadigmen

Programmierparadigmen Programmierparadigmen DEKLARATIV Funktional Logisch IMPERATIV Prozedural Objektorientiert Einsatz der Programmierparadigmen Systemkomplexität von der Komplexität der Algorithmen dominiert deklarativ oder

Mehr

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0 9 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Wiederholung: Gerüstbeispiel Ein Duo, Quarto oder Sexto ist ein Gerüst. Die Klassen Duo, Quarto und Sexto sollen durch Vererbung

Mehr

Arten von Klassen-Beziehungen

Arten von Klassen-Beziehungen Arten von Klassen-Beziehungen Untertypbeziehung: Ersetzbarkeit Vererbung von Code aus Oberklasse irrelevant Vererbungsbeziehung: Klasse entsteht durch Abänderung anderer Klassen Ersetzbarkeit irrelevant

Mehr

Beispiel: Zwischen der Oberklasse und der abgeleiteten Klasse besteht eine ist ein Beziehung. Eine abgeleitete Klasse stellt eine Spezialisierung der

Beispiel: Zwischen der Oberklasse und der abgeleiteten Klasse besteht eine ist ein Beziehung. Eine abgeleitete Klasse stellt eine Spezialisierung der Vererbung Vererbung ist ein Konzept der objektorientierten Programmierung,, die es ermöglicht neue Klassen von bereits vorhandenen Klassen abzuleiten. In einer abgeleiteten Klasse (subclass) muss nur spezifiziert

Mehr

Ersetzbarkeit und Verhalten

Ersetzbarkeit und Verhalten Ersetzbarkeit und Verhalten U ist Untertyp von T, wenn eine Instanz von U überall verwendbar ist, wo eine Instanz von T erwartet wird Struktur der Typen für Ersetzbarkeit nicht ausreichend Beispiel: void

Mehr

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener

Mehr

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18

Mehr

Ausarbeitung OOP. 1. Grundlagen und Ziele. 1.1 Konzepte objektorientierter Programmierung

Ausarbeitung OOP. 1. Grundlagen und Ziele. 1.1 Konzepte objektorientierter Programmierung Ausarbeitung OOP 1. Grundlagen und Ziele 1.1 Konzepte objektorientierter Programmierung Leichte Wartbarkeit und einfache Änderbeitkeit von Programmen bei Softwareentwicklungsprozessen. 1.1.1 Objekte Ein

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

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 13 Einstieg in die Informatik mit Java Schnittstellen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 13 1 Einführung 2 Definition einer Schnittstelle 3 Implementierung

Mehr

Objektorientierte Programmiertechniken Fragenkatalog

Objektorientierte Programmiertechniken Fragenkatalog Objektorientierte Programmiertechniken Fragenkatalog Zusammengestellt von: Georg Moser, Marco Handl OOP Fragenkatalog Seite 2 von 23 Kapitel 1 1. Erklären Sie folgende Begriffe: Objekt, Klasse, Vererbung

Mehr

Kapitel 2. Michal Domanski Seite 1

Kapitel 2. Michal Domanski Seite 1 Kapitel 2 1. In welcher Form kann man durch das Ersetzbarkeitsprinzip Wiederverwendung erzielen? Untertyp darf überall verwendet werden wo dessen Obertyp verwendet wird Man erreicht höhere Flexibilität

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Skript zur Vorlesung: Einführung in die Programmierung WiSe 2009 / 2010 Skript 2009 Christian Böhm, Peer Kröger, Arthur Zimek Prof. Dr. Christian Böhm Annahita Oswald Bianca Wackersreuther Ludwig-Maximilians-Universität

Mehr

Programmieren in Java

Programmieren in Java Einführung in die Objektorientierung Teil 4 Interfaces, innere Klassen und Polymorphie 2 Vererbung im Klassendiagram (Wiederholung) Vererbung repräsentiert eine ist ein Beziehung zwischen Klassen Ware

Mehr

Grundzüge der Programmierung. Wiederverwendung VERERBUNG

Grundzüge der Programmierung. Wiederverwendung VERERBUNG Grundzüge der Programmierung Wiederverwendung VERERBUNG Inhalt dieser Einheit Syntax: Vererbung in Java Superklassen - Subklassen Konstruktorenaufruf in Subklassen super, abstract und final 2 Code-Reuse

Mehr

Klassen und Konstruktoren in Java

Klassen und Konstruktoren in Java Klassen und Konstruktoren in Java class Circle { int r; Circle(int r) { this.r = r; // 1 Circle(Circle c) { this.r = c.r; // 2 Circle() { r = 1; // 3...... Circle a = new Circle(2); // Konstruktor 1 Circle

Mehr

Programmieren in Java

Programmieren in Java Einführung in die Objektorientierung Teil 4 Interfaces, Polymorphie und innere Klassen 2 Vererbung im Klassendiagramm (Wiederholung) Vererbung repräsentiert eine ist ein Beziehung zwischen Klassen Object

Mehr

Vererbung, Polymorphismus

Vererbung, Polymorphismus Vererbung, Polymorphismus INE2 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? Automobilbau Firma produziert Limousine Kunde möchte Kombi Wielösen? Möglichkeiten Neudesign

Mehr

Programmierung Nachklausurtutorium

Programmierung Nachklausurtutorium Programmierung Nachklausurtutorium Laryssa Horn, Tim Engelhardt 20 März 2018 Klassen Wofür wir Klassen brauchen: Definieren ein Bauplan eines Objektes Bauplan enthält Attribute und Methoden Klasse Beispiel

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 2 22.03.2017 Was bisher geschah... Klassen und Objekte Attribute und Methoden Klasse Bruch

Mehr

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich WS 02/03 Warum muss ein Objekt wissen, zu welcher Klasse es gehört? Damit die Klassenzugehörigkeit

Mehr

7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen

7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen 7. Schnittstellen Grundlagen zu Schnittstellen 7. Schnittstellen Eine Schnittstelle (Interface) ist eine Spezifikation eines Typs in Form eines Typnamens und einer Menge von Methoden, die keine Implementierungen

Mehr

Weitere Beispiele. Beispiel CD-Spieler: Exemplare eines abstrakten Konzepts. 7. Schnittstellen. Schnittstelle: Syntax

Weitere Beispiele. Beispiel CD-Spieler: Exemplare eines abstrakten Konzepts. 7. Schnittstellen. Schnittstelle: Syntax Weitere Beispiele Beispiel CD-Spieler: Exemplare eines abstrakten Konzepts public interface Funktion { boolean istimdefbereich(double x); double wert(double x); String gibbeschreibung(); public interface

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

Einführung in die Programmiersprache Java II

Einführung in die Programmiersprache Java II Einführung in die Programmiersprache Java II ??????????? UML OOP "Object oriented programming is bad" - professional retard 90s... UML Entwicklungsziele verschiedenen existierenden objektorienten Modellierungsmethoden

Mehr

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1 Inhaltsverzeichnis Grundlagen und Einführung (1. Band) 1 1 Einleitung und Vorwort 1 1.1 Vorwort zur 13. Auflage....................... 1 1.2 Vorwort zur 10. Auflage....................... 1 1.3 Voraussetzungen...........................

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

Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke Institut für Programmierung und Reaktive Systeme Java 7 Markus Reschke 14.10.2014 Vererbung in Java Vererbung ermöglicht es, Klassen zu spezialisieren Wiederverwendung vorhandener Klassen Kindsklasse erhält

Mehr

Paket umfaßt alle Dateien bzw. Klassen im selben Ordner. Kürzer durch Import-Deklaration (am Dateianfang)

Paket umfaßt alle Dateien bzw. Klassen im selben Ordner. Kürzer durch Import-Deklaration (am Dateianfang) Pakete eine public Klasse pro Datei Paket umfaßt alle Dateien bzw. Klassen im selben Ordner explizite Paketdeklaration: package paketname; Aufruf von foo() in der Datei myclasses/test/aclass.java: myclasses.test.aclass.foo()

Mehr

Das Interface-Konzept am Beispiel der Sprache Java

Das Interface-Konzept am Beispiel der Sprache Java Das Interface-Konzept am Beispiel der Sprache Java Klaus Kusche, November 2013 Inhalt Motivation: Wozu braucht man Interfaces? Interfaces in Java Was spricht gegen die große Lösung? Voraussetzungen Kenntnisse

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Einführung in die Programmierung Teil 8: Interfaces Prof. Dr. Peer Kröger, Florian Richter, Michael Fromm Wintersemester 2018/2019 Übersicht 1. Einführung 2. Schnittstellen in Java 3. Exkurs: Marker-Interfaces

Mehr

Informatik II Übung 6

Informatik II Übung 6 Informatik II Übung 6 Gruppe 2 Carina Fuss cfuss@student.ethz.ch 11.4.2018 Carina Fuss 11.4.2018 1 Übung 6 Nachbesprechung Übung 5 Objektorientierung Vererbung, Polymorphie, abstrakte Klassen, Interfaces,

Mehr

Inhaltsüberblick. I. Grundbegriffe - Objekte und Klassen. Organisatorisches. I. Grundbegriffe - Objektorientierte Konzepte

Inhaltsüberblick. I. Grundbegriffe - Objekte und Klassen. Organisatorisches. I. Grundbegriffe - Objektorientierte Konzepte Grundkonzepte Objektorientierter Programmierung Nicole Himmerlich FSU Jena mit Java, Oberon-2, Object-Pascal und Python Inhaltsüberblick I. Grundbegriffe 1) Kopplung 2) Datenkaspelung 3) Konstruktor 4)

Mehr

Objektorientierte Sprachen

Objektorientierte Sprachen Objektorientierte Sprachen Eine Sprache, die Objekte unterstützt, heißt objektbasiert Eine klassenbasierte Sprache unterstützt zusätzlich Klassen Eine objektorientierte Sprache unterstützt zusätzlich die

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 35 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 35 1 Grundlagen 2 Verdeckte Variablen 3 Verdeckte Methoden 4 Konstruktoren

Mehr

4. Vererbung. Idee der Vererbung. Wir wollen ein Verwaltungsprogramm für CDs und Videos entwickeln. Wir stellen uns dazu folgende Klassen vor:

4. Vererbung. Idee der Vererbung. Wir wollen ein Verwaltungsprogramm für CDs und Videos entwickeln. Wir stellen uns dazu folgende Klassen vor: 4. Vererbung Grundlagen der Vererbung 4. Vererbung 4. Vererbung Grundlagen der Vererbung Idee der Vererbung Wir wollen ein Verwaltungsprogramm für CDs und Videos entwickeln. Wir stellen uns dazu folgende

Mehr

Geschachtelte Klassen

Geschachtelte Klassen Geschachtelte Klassen Die Programmiersprache Java bietet nicht nur die Möglichkeit innerhalb von Klassen Datenfelder und Methoden zu definieren, sondern auch Klassen. Solche Klassen heißen en geschachtelte

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

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie Anwendungsentwicklung mit Java Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie Vererbung (1) 2 Problem: Objekte mit gleichen Attributen/Methoden, aber nicht völlig identisch, z.b., LKW, PKW,

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 16 Einstieg in die Informatik mit Java Innere Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 16 1 Einführung 2 Element-Klassen 3 Lokale Klassen 4 Anonyme Klassen

Mehr

Innere Klassen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java

Innere Klassen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java Innere Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 13.06.07 G. Bohlender (IANM UNI Karlsruhe) Innere Klassen 13.06.07 1 / 11

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

Praktikum. SEP: Java-Programmierung WS 2018/19. Modularisierung. Thomas Lemberger und Martin Spießl

Praktikum. SEP: Java-Programmierung WS 2018/19. Modularisierung. Thomas Lemberger und Martin Spießl Praktikum SEP: Java-Programmierung WS 2018/19 Modularisierung Thomas Lemberger und Martin Spießl Basierend auf Folien von Matthias Dangl und Karlheinz Friedberger 1 / 10 Modularisierung Module gliedern

Mehr

Vererbung, Polymorphie

Vererbung, Polymorphie Vererbung, Polymorphie Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 21.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung, Polymorphie 21.1.08

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

Klassen als Objekte. Smalltalk vs. Objective-C. Self-Nachrichten an Klassen in Objective-C. Klassen als Objekte. Smalltalk: Everything is an object

Klassen als Objekte. Smalltalk vs. Objective-C. Self-Nachrichten an Klassen in Objective-C. Klassen als Objekte. Smalltalk: Everything is an object Smalltalk vs. Objective-C Klassen als Objekte Klassendeklarationen Selektoren als first-class values Objekt-Erzeugung Implementierung: Eigene VM vs. Einbettung in C Smalltalk: Everything is an object Klassen

Mehr

Objektorientierte Programmierung III

Objektorientierte Programmierung III Objektorientierte Programmierung III OOP Kapselung: Gruppierung von Daten und Funktionen als Objekte. Definieren eine Schnittstelle zu diesen Objekten. Vererbung: Erlaubt Code zwischen verwandten Typen

Mehr

14. Java Objektorientierung

14. Java Objektorientierung Objektorientierung: Verschiedene Aspekte Daten Typhierarchie Objekte 14. Java Objektorientierung Code Vererbung Unter- und Oberklassen Klassen, Vererbung, Kapselung Methoden überschreiben Unterklassen

Mehr

14. Java Objektorientierung

14. Java Objektorientierung Objektorientierung: Verschiedene Aspekte Daten Typhierarchie Objekte 14. Java Objektorientierung Code Vererbung Unter- und Oberklassen Klassen, Vererbung, Kapselung Methoden überschreiben Unterklassen

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

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5.

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5. Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 23.5.07 G. Bohlender (IANM UNI Karlsruhe) Vererbung 23.5.07 1 / 22 Übersicht 1

Mehr

Objektorientierte Programmierung. Kapitel 14: Interfaces

Objektorientierte Programmierung. Kapitel 14: Interfaces 14. Interfaces 1/26 Objektorientierte Programmierung Kapitel 14: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2013/14 http://www.informatik.uni-halle.de/ brass/oop13/

Mehr

Einführung in C# Teil 3. Matthias Nübling

Einführung in C# Teil 3. Matthias Nübling Einführung in C# Teil 3 Matthias Nübling Vorausgesetzte Grundkenntnisse Programmierung Typen, Variablen, Anweisungen, Funktionen, etc. Objektorientierte Programmierung Klassen, Vererbung, Polymorphismus,

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 22 Einstieg in die Informatik mit Java Generics Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Überblick Generics 2 Generische Klassen 3 Generische Methoden 4

Mehr

5. Im Spannungsfeld welcher widersprüchlichen Ziele befinden sich Programmierparadigmen? Wie äußert sich dieses Spannungsfeld?

5. Im Spannungsfeld welcher widersprüchlichen Ziele befinden sich Programmierparadigmen? Wie äußert sich dieses Spannungsfeld? Objektorientierte Programmiertechniken WS 12/13 Lukas Kränkl (ergänzend zu Georg Moser, Marco Handl) Kapitel 1 1. Was versteht man unter einem Programmierparadigma? Unter Programmierparadigma versteht

Mehr

Skriptum zu Objektorientierte Programmiertechniken im Wintersemester 2011/2012

Skriptum zu Objektorientierte Programmiertechniken im Wintersemester 2011/2012 OOP 11 Skriptum zu 00 00 000 111 11 11 computer 000 111 lang uages 00 11 Objektorientierte Programmiertechniken im Wintersemester 2011/2012 Franz Puntigam Technische Universität Wien Institut für Computersprachen

Mehr

OOP 11. Skriptum zu Objektorientierte Programmiertechniken im Wintersemester 2011/2012

OOP 11. Skriptum zu Objektorientierte Programmiertechniken im Wintersemester 2011/2012 2 OOP 11 Skriptum zu 00 11 00 11 000 111 computer 000 111 lang uages 00 11 Objektorientierte Programmiertechniken im Wintersemester 2011/2012 Franz Puntigam Technische Universität Wien Institut für Computersprachen

Mehr

1. Abstrakte Klassen

1. Abstrakte Klassen 1. Abstrakte Klassen Lernziele 1. Abstrakte Klassen Lernziele: Das Konzept abstrakter Klassen und abstrakter Methoden kennen und verstehen, in der Lage sein, abstrakte Klassen und Methoden in Java zu formulieren,

Mehr

Vorausgesetzte Grundkenntnisse. Inhalt. Klassenhierarchie und Vererbung. Vererbung. Klassenhierarchie und Vererbung. Einführung in C# Teil 3

Vorausgesetzte Grundkenntnisse. Inhalt. Klassenhierarchie und Vererbung. Vererbung. Klassenhierarchie und Vererbung. Einführung in C# Teil 3 Vorausgesetzte Grundkenntnisse Einführung in C# Teil 3 Matthias Nübling Programmierung Typen, Variablen, Anweisungen, Funktionen, etc. Objektorientierte Programmierung Klassen, Vererbung, Polymorphismus,

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung WS 2006/2007 Klassen und Vererbung in Java Walter Binder Universität Lugano 2006-11-23 Objektorientierte Programmierung 1 Überblick Konstruktoren Verdecken versus Überschreiben

Mehr

HSR Rapperswil 2001 Markus Rigling. Programmieren: Vererbung. 1 Variante 2

HSR Rapperswil 2001 Markus Rigling. Programmieren: Vererbung. 1 Variante 2 HSR Rapperswil 2001 Markus Rigling Programmieren: Vererbung 1 Variante 2 Inhaltsverzeichnis: 1. Was ist Vererbung...3 2. Anwendung...3 3. Realisierung...3 4. Vorgehensweise zur Erstellung einer Kind-Klasse...3

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Skript zur Vorlesung: Einführung in die Programmierung WiSe 2009 / 2010 Skript 2009 Christian Böhm, Peer Kröger, Arthur Zimek Prof. Dr. Christian Böhm Annahita Oswald Bianca Wackersreuther Ludwig-Maximilians-Universität

Mehr

OOP. Kapselung: Gruppierung von Daten und Funktionen als Objekte. Definieren eine Schnittstelle zu diesen Objekten.

OOP. Kapselung: Gruppierung von Daten und Funktionen als Objekte. Definieren eine Schnittstelle zu diesen Objekten. Polymorphismus OOP Kapselung: Gruppierung von Daten und Funktionen als Objekte. Definieren eine Schnittstelle zu diesen Objekten. Vererbung: Erlaubt Code zwischen verwandten Typen wiederverwendet sein.

Mehr

Algorithmen und Datenstrukturen 07

Algorithmen und Datenstrukturen 07 (7. Juni 2012) 1 Besprechung Blatt 6 Fragen 2 Referenzen Referenzsemantik 3 Vererbung Allgemein abstract Interfaces Vererbung in UML 4 Vorbereitung Blatt 7 Anmerkungen Fragen Fragen zu Blatt 6? Referenzsemantik

Mehr

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik Klassen und höhere Datentypen Objekte, Felder, Methoden Küchlin/Weber: Einführung in die Informatik Klassen Klasse (class) stellt einen (i.a. benutzerdefinierten) Verbund-Datentyp dar Objekte sind Instanzen

Mehr

IT I: Heute. abstrakte Methoden und Klassen. Interfaces. Interfaces List, Set und Collection IT I - VO 7 1

IT I: Heute. abstrakte Methoden und Klassen. Interfaces. Interfaces List, Set und Collection IT I - VO 7 1 IT I: Heute abstrakte Methoden und Klassen Interfaces Interfaces List, Set und Collection 22.11.2018 IT I - VO 7 1 Wissensüberprüfung Überschreiben von Methoden: Aufruf der Methode der Oberklasse ist oft

Mehr

Ein Vortrag im Rahmen des Wahlpflichtmoduls Fortgeschrittene Programmierung mit JAVA

Ein Vortrag im Rahmen des Wahlpflichtmoduls Fortgeschrittene Programmierung mit JAVA Ein Vortrag im Rahmen des Wahlpflichtmoduls Fortgeschrittene Programmierung mit JAVA Themenspeicher Strukturen objektorientierter Programmierung (Wiederholung) Klassen und Vererbung Schnittstellen und

Mehr

Überschreiben von Methoden

Überschreiben von Methoden Vergleich der DoME Realisierungen: Methode ausgeben Version 1 (ohne Vererbung): Anzeigen aller Informationen CD: A Swingin Affair (64 Min)* Frank Sinatra Titelanzahl: 16 Mein Lieblingsalbum von Sinatra

Mehr

Programmieren 1 09 Vererbung und Polymorphie

Programmieren 1 09 Vererbung und Polymorphie Programmieren 1 09 Vererbung und Polymorphie Bachelor Medieninformatik Sommersemester 2015 Dipl.-Inform. Ilse Schmiedecke schmiedecke@beuth-hochschule.de 1 I. VERERBUNG 2 2 Vererbung Von Interfaces übernehmen

Mehr

Objekte und Klassen. INE2 M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert, E.

Objekte und Klassen. INE2 M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert, E. Objekte und Klassen INE2 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? typedef struct Konto { double saldo; int id; Konto; Modul "konto" konto.h konto.c Prozedurale Programmierung:

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Objektorientierung in C++ (3) Aspekte der Vererbung (1) Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 546 Zuweisung bei Vererbung Dr. Frank Seifert Vorlesung

Mehr

Objektorientierte Programmierung mite**

Objektorientierte Programmierung mite** mc Jürgen Franz/Christoph Mattheis Objektorientierte Programmierung mite** Systemunabhängig umsteigen auf C ++ Windowsprogrammierung Beispiele für UNIX Mit 66 Abbildungen Franzis 9 Inhalt 1 Überblick C++

Mehr

Java als erste Programmiersprache

Java als erste Programmiersprache Joachim Göll Cornelia Heinisch Java als erste Programmiersprache Grundkurs für Hochschulen 8., überarbeitete Auflage Springer Vi eweg Inhaltsverzeichnis 1 Grundlagen der Programmierung 1 1.1 Das erste

Mehr

4. Vererbung Die Klasse Object. Die Klasse Object

4. Vererbung Die Klasse Object. Die Klasse Object 4. Vererbung Die Klasse Object Die Klasse Object Alle Klassen ohne explizit deklarierte Superklasse haben die Klasse Object als Superklasse. Object gehört zum Paket java.lang. Object verfügt über einige

Mehr

Implementieren von Klassen

Implementieren von Klassen Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und

Mehr

Einführung in die Programmierung I. 11. Vererbung. Stefan Zimmer

Einführung in die Programmierung I. 11. Vererbung. Stefan Zimmer Einführung in die Programmierung I 11. Vererbung Stefan Zimmer 21.1.2008 Programmcode wiederverwenden Wenn wir einige Klassen geschrieben haben, werden wir dabei Teile davon öfters hingeschrieben haben

Mehr

Inhaltsverzeichnis. 4.9 Aufgaben... 63

Inhaltsverzeichnis. 4.9 Aufgaben... 63 Inhaltsverzeichnis 1 Einleitung 1 1.1 Programmierung... 1 1.2 Objektorientierte Programmierung... 2 1.3 Voraussetzungen und Ziele dieses Buches... 3 1.4 Aufbau dieses Buches... 4 2 Das imperative Hamster-Modell

Mehr

14. Java Objektorientierung. Klassen, Vererbung, Kapselung

14. Java Objektorientierung. Klassen, Vererbung, Kapselung 427 14. Java Objektorientierung Klassen, Vererbung, Kapselung Objektorientierung: Verschiedene Aspekte 428 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen

Mehr

Creational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05.

Creational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05. Creational Patterns Seminar Software-Entwurf WS 2004/05 Thomas Liro Inhaltsüberblick Einordnung des Themas Beschreibung von Design Pattern Auswahl von Design Patterns Was sind Creational

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Einführung in die objektorientierte Programmierung 2 Einordnung in den Softwareentwicklungsprozess Softwareentwicklung mit JAVA Planung Entwurf Programmierung Test/Evaluation/Pflege

Mehr

Vorkurs Informatik WiSe 15/16

Vorkurs Informatik WiSe 15/16 Java 7 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 21.10.2015 Technische Universität Braunschweig, IPS Überblick OO in Java Vererbung Abstrakte Klassen und Interfaces 21.10.2015 Dr. Werner Struckmann

Mehr