Konstantin Prokudin 10. Juni 2011

Größe: px
Ab Seite anzeigen:

Download "Konstantin Prokudin 10. Juni 2011"

Transkript

1 Konstantin Prokudin 10. Juni 2011

2 Adapter-Muster Fassade-Muster Quellen

3 Beispiel aus dem Leben Objektorientierte Adapter Beispiel: Zeicheneditor Klassen-Adapter Spezielle Adapter Adapter: Vor- und Nachteile Zusammenfassung Adapter: Inhalt Beispiel aus dem Leben Problem Lösung Definition Objekt-Adapter Beispiel: Zeicheneditor

4 Adapter: Inhalt Beispiel aus dem Leben Problem Lösung Definition Objekt-Adapter Beispiel: Zeicheneditor

5 Sie brauchen Strom? Dann eine Steckdose suchen. Adapter: Inhalt Beispiel aus dem Leben Problem Lösung Definition Objekt-Adapter Beispiel: Zeicheneditor

6 Sie finden eine Steckdose... aber sie passt für Ihren Stecker nicht! Adapter: Inhalt Beispiel aus dem Leben Problem Lösung Definition Objekt-Adapter Beispiel: Zeicheneditor

7 Schnittstellenproblem: unserer Stecker soll eine Steckdose verwenden. Der Stecker kann jedoch auf das Ziel nicht zugreifen, da der Stecker eine andere Schnittstelle erwartet als die, die von der Steckdose angeboten wird. Adapter: Inhalt Beispiel aus dem Leben Problem Lösung Definition Objekt-Adapter Beispiel: Zeicheneditor

8 Der Stecker wird in einen Adapter gesteckt. Der Adapter bietet die Schnittstelle an, die der Stecker benötigt. Adapter: Inhalt Beispiel aus dem Leben Problem Lösung Definition Objekt-Adapter Beispiel: Zeicheneditor

9 Dieser Stecker erwartet eine andere Schnittstelle. Der Adapter konvertiert eine Schnittstelle in eine andere. Die Steckdose bietet eine Schnittstelle für den Bezug von Strom Adapter: Inhalt Beispiel aus dem Leben Problem Lösung Definition Objekt-Adapter Beispiel: Zeicheneditor

10 Das Adapter-Muster konvertiert die Schnittstelle einer Klasse in die Schnittstelle, die der Client erwartet. Adapter ermöglicht die Zusammenarbeit von Klassen, die ohne nicht zusammenarbeiten könnten, weil sie inkompatible Schnittstellen haben. Adapter: Inhalt Beispiel aus dem Leben Problem Lösung Definition Objekt-Adapter Beispiel: Zeicheneditor

11 Adapter: Inhalt Beispiel aus dem Leben Problem Lösung Definition Objekt-Adapter Beispiel: Zeicheneditor

12 Client Ziel - Klasse Ihre Schnittstelle passt nicht zur Ziel-Klasse Adapter: Inhalt Beispiel aus dem Leben Problem Lösung Definition Objekt-Adapter Beispiel: Zeicheneditor

13 Client Adapter Ziel - Klasse Der Adapter implementiert die Schnittstelle, die Ihre Klassen erwarten Und spricht mit der Ziel - Schnittstelle, um Ihre Anfrage zu erledigen Adapter: Inhalt Beispiel aus dem Leben Problem Lösung Definition Objekt-Adapter Beispiel: Zeicheneditor

14 Client Adapter Ziel - Klasse Keine Code-Änderung beim Client und Ziel-Klasse Adapter: Inhalt Beispiel aus dem Leben Problem Lösung Definition Objekt-Adapter Beispiel: Zeicheneditor

15 1. Der Client stellt eine Anfrage an den Adapter, indem er unter Verwendung der Ziel-Schnittstelle eine Methode auf ihm aufruft. 2. Der Adapter übersetzt diese Anfrage in ein oder mehrere Aufrufe auf das Adaptierte, für die er die Adaptierten- Schnittstelle verwendet. 3. Der Client empfängt die Ergebnisse des Aufrufs und erfährt nie, dass da ein Adapter ist, der eine Übersetzung durchführt. Adapter: Inhalt Beispiel aus dem Leben Problem Lösung Definition Objekt-Adapter Beispiel: Zeicheneditor

16 benutzt adaptiert adaptiert.spezifischeoperation() Adapter: Inhalt Beispiel aus dem Leben Problem Lösung Definition Objekt-Adapter Beispiel: Zeicheneditor

17 Adapter: Inhalt Beispiel aus dem Leben Problem Lösung Definition Objekt-Adapter Beispiel: Zeicheneditor

18 begrenzungsrahmen(); zeichne(); TextAnzeige passt nicht zu GraphischesObjekt Adapter: Inhalt Beispiel aus dem Leben Problem Lösung Definition Objekt-Adapter Beispiel: Zeicheneditor

19 Adapter: Inhalt Beispiel aus dem Leben Problem Lösung Definition Objekt-Adapter Beispiel: Zeicheneditor

20 public class TextAnzeige { private int ursprung; private int hoehe; private int breite; private String text; } Zulieferer-Klasse public int getursprung(){ return ursprung; } public int gethoehe(){ return hoehe; } public int getbreite(){ return breite; } public String zeigmich(){ return text; } Adapter public class TextAdapter { private TextAnzeige text; // Konstruktor public ZeichenAdapter(TextAnzeige text) {this.text = text;} // Rahmen public Rahmen begrenzungsrahmen(){ text.gethoehe(); text.getbreite();... } // Text public Zeichen zeichne(){... text.zeigmich();... } } Adapter: Inhalt Beispiel aus dem Leben Problem Lösung Definition Objekt-Adapter Beispiel: Zeicheneditor

21 Aufruf des Adapters public class TestAdapter { public static void main(string[] args) { TextAdapter text = new TextAdapter(new TextAnzeige()); text.begrenzungsrahmen(); text.zeichne(); } } Adapter: Inhalt Beispiel aus dem Leben Problem Lösung Definition Objekt-Adapter Beispiel: Zeicheneditor

22 Adapter: Inhalt Beispiel aus dem Leben Problem Lösung Definition Objekt-Adapter Beispiel: Zeicheneditor

23 Klassen-Adapter benutzt mehrfache Vererbung um unser Objekt anzupassen bildet der Adapter eine Unterklasse des Adaptierten und des Ziels Adapter: Inhalt Beispiel aus dem Leben Problem Lösung Definition Objekt-Adapter Beispiel: Zeicheneditor

24 Der einzige Unterschied zwischen den beiden Adaptern ist, dass bei einem Klassen-Adapter eine Unterklasse des Ziels und der Adaptierten Klasse gebildet wird, während beim Objekt-Adapter Komposition verwendet wird, um die Anfragen an das Adaptierte zu übergeben. Adapter: Inhalt Beispiel aus dem Leben Problem Lösung Definition Objekt-Adapter Beispiel: Zeicheneditor

25 Adapter: Inhalt Beispiel aus dem Leben Problem Lösung Definition Objekt-Adapter Beispiel: Zeicheneditor

26 Es gibt zwei besondere Vorgehensweisen, wenn man das Adaptermuster verwenden möchte. Zum einen kann man eine Klasse gleich mit einem steckbaren Adapter ausstatten. Zum anderen kann man eine Klasse auch für mehrere Klienten gleichzeitig, mit einem n-weg-adapter, zugänglich machen. Adapter: Inhalt Beispiel aus dem Leben Problem Lösung Definition Objekt-Adapter Beispiel: Zeicheneditor

27 Wenn man eine Klasse möglichst allgemein wieder verwendbar schreiben möchte, kann man sie mit einem steckbaren Adapter ausstatten. Hierzu gibt man dieser Klasse abstrakte Methoden, die ein Adapter später implementieren muss. Adapter: Inhalt Beispiel aus dem Leben Problem Lösung Definition Objekt-Adapter Beispiel: Zeicheneditor

28 Eine Adapterklasse kann mehrere Interfaces implementieren, um so für zwei oder mehr Klienten nutzbar zu sein. Dies nennt man einen n-/zwei-weg- Adapter. Der n-weg-adapter ist sowohl in Java als auch in C zu verwirklichen. Jeder normale ein-weg- Adapter ist im Prinzip ein Spezialfall des n-weg- Adapters. Adapter: Inhalt Beispiel aus dem Leben Problem Lösung Definition Objekt-Adapter Beispiel: Zeicheneditor

29 Adapter: Inhalt Beispiel aus dem Leben Problem Lösung Definition Objekt-Adapter Beispiel: Zeicheneditor

30 keine Codeänderung Wiederverwendbarkeit von Softwareprojekten geringere Kosten kürzere Entwicklungszeiten Adapter: Inhalt Beispiel aus dem Leben Problem Lösung Definition Objekt-Adapter Beispiel: Zeicheneditor

31 zusätzliche Delegationsschicht Einfluss auf die Performance Adapter: Inhalt Beispiel aus dem Leben Problem Lösung Definition Objekt-Adapter Beispiel: Zeicheneditor

32 Eine Klasse soll eine andere Klasse verwenden, die aber keinen passenden Schnittstellen hat oder die Quellcode von der Klasse nicht bekannt ist. Als Lösung wird eine Klasse Adapter implementiert, die die nötigen Schnittstelle liefert. Adapter: Inhalt Beispiel aus dem Leben Problem Lösung Definition Objekt-Adapter Beispiel: Zeicheneditor

33

34 Problem Lösung Fassade Fassade: Beispiel Heimkino Fassade: noch ein Beispiel Fassade: Vor- und Nachteile Fassade: Inhalt Problem Lösung Fassade Beispiel Heimkino Noch ein Beispiel Vor- und Nachteile

35 Um in einem System eine möglichst hohe Kohäsion zu erreichen, muss in der Regel für jede Funktionalität auch eine eigene Klasse bereitgestellt werden. Das führt im Laufe der Entwicklung eines Software-Projekts zu immer zahlreicheren Klassen und immer mehr Abhängigkeiten zwischen ihnen. Um die Komplexität des Gesamtsystems zu verringern, kann es in Subsysteme unterteilt werden. Es bestehen aber weiterhin die Probleme, dass ein Klient für die Nutzung der gewünschten Funktionen innerhalb eines Subsystems auf viele Subsystemobjekte zugreifen muss. Das bedeutet Unübersichtlichkeit und hohe Kopplung. Fassade: Inhalt Problem Lösung Fassade Beispiel Heimkino Noch ein Beispiel Vor- und Nachteile

36 Clients Fassade: Inhalt Problem Lösung Fassade Beispiel Heimkino Noch ein Beispiel Vor- und Nachteile

37 Den oben beschriebenen Problemen kann man durch die Anwendung des Fassade Pattern entgegenwirken. Die Fassade steht dabei zwischen den Clients, die Funktionen eines Subsystem nutzen wollen, und dem Subsystem selbst. Fassade: Inhalt Problem Lösung Fassade Beispiel Heimkino Noch ein Beispiel Vor- und Nachteile

38 Clients Fassade: Inhalt Problem Lösung Fassade Beispiel Heimkino Noch ein Beispiel Vor- und Nachteile

39 Das Subsystem kann aus Klassen, Funktionen, Datenstrukturen oder weiteren Subsystemen bestehen. Die Komponenten des Subsystems implementieren die Funktionalität. Sie wissen nichts von einer möglichen Fassade. Fassade: Inhalt Problem Lösung Fassade Beispiel Heimkino Noch ein Beispiel Vor- und Nachteile

40 Clients wollen die Subsystemfunktionalität nutzen. Vor Einführung der Fassade müssen sie dazu auf die einzelnen Komponenten des Subsystems zugreifen, nach Einführung der Fassade laufen alle Anfragen nur noch über sie. Fassade: Inhalt Problem Lösung Fassade Beispiel Heimkino Noch ein Beispiel Vor- und Nachteile

41 Die Fassade stellt eine abstrakte Schnittstelle für den Zugriff auf die Subsystemfunktionen zur Verfügung. Sie steht zwischen den Klienten und den Subsystemkomponenten und leitet die Anfragen der Klienten weiter. Dazu muss die Fassade alle Subsystemkomponenten und deren Schnittstellen kennen. Möglicherweise muss sie selbst Funktionalität implementieren, um ihre Schnittstelle auf die der Klienten abzubilden. Die Fassade sollte den Zugriff auf die Funktionen des Subsystems möglichst weit vereinfachen. Fassade: Inhalt Problem Lösung Fassade Beispiel Heimkino Noch ein Beispiel Vor- und Nachteile

42 Fassade: Inhalt Problem Lösung Fassade Beispiel Heimkino Noch ein Beispiel Vor- und Nachteile

43 Sie haben ein System mit einem DVD-Player, einem Beamer, einer automatischen Leinwand, Surround- Sound und einer Popcorn-Maschine zusammengestellt. Fassade: Inhalt Problem Lösung Fassade Beispiel Heimkino Noch ein Beispiel Vor- und Nachteile

44 Fassade: Inhalt Problem Lösung Fassade Beispiel Heimkino Noch ein Beispiel Vor- und Nachteile

45 Das sind viele Klassen, viele Interaktionen und eine große Menge an Schnittstellen, die gelernt und verwendet werden müssen. Fassade: Inhalt Problem Lösung Fassade Beispiel Heimkino Noch ein Beispiel Vor- und Nachteile

46 Die Popcorn-Maschine einschalten Die Popcorn-Maschine starten Die Beleuchtung dimmen Die Leinwand herunterfahren Den Beamer einschalten Den Beamer Eingang auf DVD schalten Den Beamer in den Breitwandmodus versetzen Den Verstärket einschalten Den Verstärkereingang auf DVD setzen Den Verstärker auf Surround-Sound setzen Die Verstärkerlautstärke auf Mittel setzen Den DVD-Spieler einschalten Den DVD-Spieler starten um ein Film anzuschauen Fassade: Inhalt Problem Lösung Fassade Beispiel Heimkino Noch ein Beispiel Vor- und Nachteile

47 Fassade: Inhalt Problem Lösung Fassade Beispiel Heimkino Noch ein Beispiel Vor- und Nachteile

48 public class HeimkinoFassade { Verstärker verstärker; Tuner tuner; DVDSpieler dvd; CDSpieler cd; Beamer beamer; Beleuchtung beleuchtung; Leinwand leinwand; PopcornMaschine popcorn; // Konstruktor public HeimkinoFassade(Verstärker amp, Tuner tuner, DVDSpieler dvd, CDSpieler cd, Beamer beamer, Leinwand leinwand, Beleuchtung beleuchtung, PopcornMaschine popcorn){ } this.verstärker = amp; this.tuner = tuner; this.dvd = dvd; this.cd = cd; this.beamer = beamer; this.beleuchtung = beleuchtung; this.leinwand = leinwand; this.popcorn = popcorn; } Fassade: Inhalt Problem Lösung Fassade Beispiel Heimkino Noch ein Beispiel Vor- und Nachteile

49 public void filmschauen(string film){ System.out.println("Film fängt an"); popcorn.ein(); popcorn.starten(); beleuchtung.dimmen(10); leinwand.runter(); beamer.ein(); beamer.breitwandmodus(); verstärker.ein(); verstärker.setdvd(); verstärker.setsurroundsound(); verstärker.setlautstärke(5); dvd.ein(); dvd.spielen(); } public void filmbeenden(){ System.out.println( Film zum Ende"); popcorn.aus(); beleuchtung.ein(); leinwand.hoch(); beamer.aus(); verstärker.aus(); dvd.anhalten(); dvd.auswerfen(); dvd.aus(); } Fassade: Inhalt Problem Lösung Fassade Beispiel Heimkino Noch ein Beispiel Vor- und Nachteile

50 public class HeimkinoTest { public static void main(string[] args){ HeimkinoFassade heimkino = new HeimkinoFassade(verstärker, tuner, dvd, cd, beamer, leinwand, beleuchtung, popcorn); } } heimkino.filmschauen("lost in translation"); heimkino.filmbeenden(); Fassade: Inhalt Problem Lösung Fassade Beispiel Heimkino Noch ein Beispiel Vor- und Nachteile

51 Fassade: Inhalt Problem Lösung Fassade Beispiel Heimkino Noch ein Beispiel Vor- und Nachteile

52 Fassade: Inhalt Problem Lösung Fassade Beispiel Heimkino Noch ein Beispiel Vor- und Nachteile

53 Die Fassade kann den Klienten für ein komplexes Subsystem eine einheitliche Schnittstelle bieten und so die Verwendung des Subsystems weniger aufwendig und fehleranfällig machen Die Fassade entkoppelt die Klienten vom Subsystem. Es werden die Abhängigkeiten zwischen beiden reduziert, was zu besserer Wiederverwendbarkeit und Portabilität führt Die Fassade kann verwendet werden, um ein System in Schichten aufzuteilen. Sie definiert dabei den Eintrittspunkt zu jeder Subsystemschicht Für große Software-Projekte ist es wichtig, den Übersetzungsaufwand zu reduzieren. Durch Fassaden kann verhindert werden, dass eine kleine Änderung eine neue Übersetzung des gesamten Systems erfordert. Fassade: Inhalt Problem Lösung Fassade Beispiel Heimkino Noch ein Beispiel Vor- und Nachteile

54 Die Verwendung einer Fassade bedeutet immer eine zusätzliche Indirektionsstufe. Falls ihre Anwendung nicht wirklich erforderlich ist, da zum Beispiel das Subsystem sehr einfach und gut zu benutzen ist, stellt sie nur einen zusätzlichen Ballast dar. Insbesondere an zeitkritischen Stellen sollte auf ihren Einsatz verzichtet werden Die Fassade soll vereinfachen. Das hat aber zur Konsequenz, dass meist nur bestimmte Funktionen des Subsystems bereitgestellt werden. Die Fassade kann also möglicherweise die Funktionalität / Flexibilität des Subsystems einschränken. Fassade: Inhalt Problem Lösung Fassade Beispiel Heimkino Noch ein Beispiel Vor- und Nachteile

55 Eric Freeman, Elisabeth Freeman, Kathy Sierra, Bert Bates Entwurfsmuster von Kopf bis Fuß O'Reilly, Cambridge, 2004 Dr. Günter Kniesel, Institut für Informatik III, Universität Bonn design-patterns-d pdf Katrin Solveig Lohan & Matthias Hillebrand Quellen

56

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing Fassade Objektbasiertes Strukturmuster C. Restorff & M. Rohlfing Übersicht Motivation Anwendbarkeit Struktur Teilnehmer Interaktion Konsequenz Implementierung Beispiel Bekannte Verwendung Verwandte Muster

Mehr

Decorator Pattern. Analyse- und Design-Pattern CAS SWE FS14. Roland Müller Samuel Schärer

Decorator Pattern. Analyse- und Design-Pattern CAS SWE FS14. Roland Müller Samuel Schärer Decorator Pattern Analyse- und Design-Pattern CAS SWE FS14 Roland Müller Samuel Schärer Entwurfsmuster der «Gang of Four» Strukturmuster fassen Klassen und Objekte zu grösseren Strukturen zusammen Adapter

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

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

Entwurfsmuster (Design Patterns)

Entwurfsmuster (Design Patterns) Entwurfsmuster (Design Patterns) SEP 303 Entwurfsmuster (Design Patterns) In der alltäglichen Programmierarbeit tauchen viele Probleme auf, die man schon einmal gelöst hat und die man in der Zukunft wieder

Mehr

Entwurfsmuster in Java

Entwurfsmuster in Java Entwurfsmuster in Java Das Observer- und das Decorator-Pattern Friederike Löwe 13. März 2011 Inhaltsverzeichnis Einleitung Wozu eigentlich Entwurfsmuster? Die Grundlage: Design-Prinzipien Das Decorator-Pattern

Mehr

Überblick FBC SNW Zusammenfassung. Entwurfsmuster. Eine Einführung. Botond Draskoczy. Marcus Vitruvius Pollio

Überblick FBC SNW Zusammenfassung. Entwurfsmuster. Eine Einführung. Botond Draskoczy. Marcus Vitruvius Pollio Entwurfsmuster Eine Einführung Botond Draskoczy Marcus Vitruvius Pollio Überblick Historie, Literatur Das Flugapparat-Bildschirmschoner-Projekt (FBP) Das internetbasierte Solar-Netzwerk (SNW) Zusammenfassung

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

Lukas Klich. Projektgruppe SHUTTLE. Seminar: Entwurfsmuster Lukas Klich/Projektgruppe SHUTTLE Seite: 1. Entwurfsmuster

Lukas Klich. Projektgruppe SHUTTLE. Seminar: Entwurfsmuster Lukas Klich/Projektgruppe SHUTTLE Seite: 1. Entwurfsmuster Entwurfsmuster Lukas Klich Projektgruppe SHUTTLE Seminar: 28.11.2002 Entwurfsmuster Lukas Klich/Projektgruppe SHUTTLE Seite: 1 Motivation Die Menschheit löst Probleme, indem sie beobachtet, Beobachtungen

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

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

Programmieren 2 Java Überblick

Programmieren 2 Java Überblick Programmieren 2 Java Überblick 1 Klassen und Objekte 2 Vererbung 4 Innere Klassen 5 Exceptions 6 Funktionsbibliothek 7 Datenstrukturen und Algorithmen 8 Ein-/Ausgabe 9 Graphische Benutzeroberflächen 10

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

Model-View-Controller

Model-View-Controller Software Design Pattern Model-View-Controller Michael Lühr Gliederung Einführung und Problemstellung Ansatz durch MVC Detaillierte Darstellung der Komponenten Model View Controller Vor- und Nachteile Zusammenfassung

Mehr

Design Patterns. (Software-Architektur) Prof. Dr. Oliver Braun. Letzte Änderung: :12. Design Patterns 1/26

Design Patterns. (Software-Architektur) Prof. Dr. Oliver Braun. Letzte Änderung: :12. Design Patterns 1/26 Design Patterns (Software-Architektur) Prof. Dr. Oliver Braun Letzte Änderung: 11.07.2017 15:12 Design Patterns 1/26 Standardwerk Gang of Four: Erich Gamma, Richard Helm, Ralph Johnson & John Vlissides:

Mehr

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik Programmieren II Innere Klassen Heusch 10, 13.10 Ratz 5.2.1, 9.8 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Innere Klassen Bisher kennen wir nur Klassen, die entweder zusammen

Mehr

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

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

Mehr

Prinzipien der objektorientierten Programmierung (OOP)

Prinzipien der objektorientierten Programmierung (OOP) Die Ziele der OOP sind: - bessere Warbarkeit - Wiederverwendbarkeit 1.) Datenkapselung Prinzipien der objektorientierten Programmierung (OOP) Komplexe Datenstrukturen (wie zb ein Stack) werden vom Anwendungsprogramm

Mehr

Fakultät IV Elektrotechnik/Informatik

Fakultät IV Elektrotechnik/Informatik Fakultät IV Elektrotechnik/Informatik Probeklausur Einführung in die Informatik I Hinweis: Diese Probeklausur ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der Teilleistung TL 2 (Programmiertest)

Mehr

Design Pattern. Motivation, Beispiel Definition "Das" Buch der Gang of Four Ausführliches Beispiel: Facade Beispiele. Aufgabe

Design Pattern. Motivation, Beispiel Definition Das Buch der Gang of Four Ausführliches Beispiel: Facade Beispiele. Aufgabe , Beispiel der Gang of Four Ausführliches Beispiel: Beispiele Wiederverwendung ist etwas Gutes...!!! Wiederverwendung (auch: Verständlichkeit, Änderbarkeit, Portierbarkeit etc.) wird auf Design-Ebene ermöglicht

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

Objektorientierung. Klassen und Objekte. Dr. Beatrice Amrhein

Objektorientierung. Klassen und Objekte. Dr. Beatrice Amrhein Objektorientierung Klassen und Objekte Dr. Beatrice Amrhein Überblick Konzepte der Objektorientierten Programmierung Klassen und Objekte o Implementierung von Klassen o Verwendung von Objekten 2 Konzepte

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

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

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

7. Klassenmethoden Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi

7. Klassenmethoden Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi 7. Klassenmethoden Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Einführung

Mehr

Abschnitt 10: Typisierte Klassen

Abschnitt 10: Typisierte Klassen Abschnitt 10: Typisierte Klassen 10. Typisierte Klassen 10.1 Einführung: Grenzen der Typ-Polymorphie durch Vererbung 10.2 Grundlagen 10.3 Vererbung bei typisierten Klassen 10.4 Wildcards, obere und untere

Mehr

7. Objektorientierung. Informatik II für Verkehrsingenieure

7. Objektorientierung. Informatik II für Verkehrsingenieure 7. Objektorientierung Informatik II für Verkehrsingenieure Klassen, Objekte und Attribute Buslinie und Haltestellen 3 Haltestellen und deren Eigenschaften Bauplan einer Haltestelle (Struktur) Konkrete

Mehr

Erste Java-Programme (Scopes und Rekursion)

Erste Java-Programme (Scopes und Rekursion) Lehrstuhl Bioinformatik Konstantin Pelz Erste Java-Programme (Scopes und Rekursion) Tutorium Bioinformatik (WS 18/19) Konstantin: Konstantin.pelz@campus.lmu.de Homepage: https://bioinformatik-muenchen.com/studium/propaedeutikumprogrammierung-in-der-bioinformatik/

Mehr

JUnit a Cook s Tour. Framework in Java Automatisierter Ablauf von Testfällen Testläufe kombinieren. Unterlagen als PDF auf der Übungsseite!

JUnit a Cook s Tour. Framework in Java Automatisierter Ablauf von Testfällen Testläufe kombinieren. Unterlagen als PDF auf der Übungsseite! JUnit a Cook s Tour Ziel des Frameworks Framework in Java Automatisierter Ablauf von Testfällen Testläufe kombinieren Design des Frameworks Beginne bei Nichts Schritt für Schritt aus passenden Mustern

Mehr

Daniel Warneke warneke@upb.de 08.05.2006. Ein Vortrag im Rahmen des Proseminars Software Pioneers

Daniel Warneke warneke@upb.de 08.05.2006. Ein Vortrag im Rahmen des Proseminars Software Pioneers Design Patterns Daniel Warneke warneke@upb.de 08.05.2006 Ein Vortrag im Rahmen des Proseminars Software Pioneers Design Patterns 1/23 Übersicht Einleitung / Motivation Design Patterns Beispiele Rolle des

Mehr

1 Modellierung einer Uhr

1 Modellierung einer Uhr PNS Wahlpflichtfach Informatik Projekt: Uhrzeit Seite 1 1 Modellierung einer Uhr Aufgabe: Es soll ein Modell für eine Digitaluhr erstellt werden, die Stunden und Minuten im Format hh:mm repräsentiert.

Mehr

Einführung in die Systemprogrammierung

Einführung in die Systemprogrammierung Einführung in die Systemprogrammierung Virtuelle Methodentabellen Prof. Dr. Christoph Reichenbach Fachbereich 12 / Institut für Informatik 9. Juli 2015 Struktur der Objektorientierung Ein wenig Java: public

Mehr

Programmieren in Java

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

Mehr

Präsentation Interfaces

Präsentation Interfaces Einführung in Java Präsentation Interfaces Nozar Delassaei Marvi Inhalt 1. Erinnerung Klasse Objekte Beispiel Klasse Abstrakte Klasse Beispiel Abstrakte Klasse Mehrfachvererbung-1 Mehrfachvererbung-2 2.

Mehr

Exkurs: ANONYME KLASSEN. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm

Exkurs: ANONYME KLASSEN. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Exkurs: ANONYME KLASSEN Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Anonyme Klassen Eigenschaften 1 Häufigste Anwendung lokaler Klassen: anonyme Definition. Klasse erhält keinen eigenen

Mehr

Klassen und ihre Beziehungen III: Mehrfache Vererbung, Rollen, Schnittstellen und Pakete

Klassen und ihre Beziehungen III: Mehrfache Vererbung, Rollen, Schnittstellen und Pakete 2 Klassen und ihre Beziehungen III: Mehrfache Vererbung, Rollen, und Pakete Martin Wirsing Ziele Den Begriff der einfachen und mehrfachen Vererbung verstehen Verstehen, wann Vererbung eingesetzt wird deklarationen

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

Java für Bauingenieure

Java für Bauingenieure 1 JAVA für Bauingenieure Alexander Karakas SS 2008 Objektorientierte Programmierung 30.04.2008, CIP Pool Objektorientierte Programmierung Übersicht 2 Klasse und Objekt Polymorphismus und Vererbung Klassen

Mehr

Informatik I Eprog HS12

Informatik I Eprog HS12 software evolution & architecture lab Informatik I Eprog HS12 Übung 11 1 Aufgabe: Interfaces & Visitor-Pattern 1.1 Lernziele 1. Die Verwendung von Interfaces trainieren. 2. Das Visitor Design-Pattern kennenlernen.

Mehr

Aufgabenblatt 4. Aufgabe 3. Aufgabe 1. Aufgabe 2. Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen

Aufgabenblatt 4. Aufgabe 3. Aufgabe 1. Aufgabe 2. Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen Aufgabenblatt 4 Aufgabe 1 1. Erläutern Sie in eigenen Worten die Begriffe Datenstruktur, Datentyp und abstrakter Datentyp. Nutzen Sie das Beispiel

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 13: Interfaces Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme 1. Teil: Interfaces Motivation Eigenschaften Besonderheiten Anonyme Klassen Lambda-Ausdrücke Praxis:

Mehr

Info B VL 11: Innere Klassen/Collections

Info B VL 11: Innere Klassen/Collections Info B VL 11: Innere Klassen/Collections Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 11: Innere Klassen/Collections

Mehr

Vererbung Was versteht man unter dem Begriff Vererbung?

Vererbung Was versteht man unter dem Begriff Vererbung? Was versteht man unter dem Begriff Vererbung? Elternkonstrukt - Datenelemente - Methoden o Deklaration o Definition Kindkonstrukt... Main... Elternkonstrukt b = new Kindkonstrukt() b.fn() Komponenten &

Mehr

Wahlpflichtfach Design Pattern

Wahlpflichtfach Design Pattern Wahlpflichtfach Design Pattern Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik miwilhelm@hs-harz.de http://www.miwilhelm.de Raum 2.202 Tel. 03943 / 659 338

Mehr

Kapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Kapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz Kapitel 13 Abstrakte Methoden und Interfaces 13. Abstrakte Klassen und Interfaces 1. Abstrakte Klassen 2. Interfaces und Mehrfachvererbung Folie 12.2 Abstrakte Methoden und Klassen Manchmal macht es überhaupt

Mehr

Objektorientierte Programmierung (OOP)

Objektorientierte Programmierung (OOP) orientierte Programmierung (OOP) 1. Motivation Die objektorientierte Sichtweise der Welt Als Motivation für die OOP sieht man sich am besten die reale Welt an: Die reale Welt besteht aus "en", z. B.: Gegenstände,

Mehr

Übungsblatt 13. Abgabe / Besprechung in Absprache mit dem Tutor

Übungsblatt 13. Abgabe / Besprechung in Absprache mit dem Tutor Albert-Ludwigs-Universität Freiburg Institut für Informatik Einführung in die Informatik Sommersemester 2013 PD Dr. Cyrill Stachniss Dr. Rainer Kümmerle Übungsblatt 13 Abgabe / Besprechung in Absprache

Mehr

Th. Letschert OOP 2 2. Geheimnisprinzip und Sichtbarkeitsbeziehungen

Th. Letschert OOP 2 2. Geheimnisprinzip und Sichtbarkeitsbeziehungen Th. Letschert OOP 2 2. Geheimnisprinzip und Sichtbarkeitsbeziehungen Th Letschert FH Gießen-Friedberg Th. Letschert OOP 2 Sichtbarkeitsbeziehungen und Geheimnisprinzip Sichtbarkeitsbeziehungen realisieren

Mehr

Software-Entwurfsmuster

Software-Entwurfsmuster Software-Entwurfsmuster Prinzip von Entwurfsmustern und einige elementare Beispiele Malte Spiess malte@mathematik.uni-ulm.de Seminar Bildanalyse und Simulation mit Java im WS 2003/2004 Universität Ulm

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 15 Parallele Programmierung... 15-2 15.1 Die Klasse java.lang.thread... 15-2 15.2 Beispiel 0-1-Printer als Thread... 15-3 15.3 Das Interface java.lang.runnable... 15-4 15.4 Beispiel 0-1-Printer

Mehr

Deklaration einer Klasse Innere innerhalb Klassen einer in Ja anderen v a Klasse

Deklaration einer Klasse Innere innerhalb Klassen einer in Ja anderen v a Klasse Innere Klassen in Java Java 1.0: nur top-level Klassen Seit Java Version 1.1: Innere Klassen Deklaration einer Klasse innerhalb einer anderen Klasse Illustration Eigenschaften Vorteile Anwendungsmöglichkeiten

Mehr

Vererbung. Was versteht man unter dem Begriff Vererbung?

Vererbung. Was versteht man unter dem Begriff Vererbung? Was versteht man unter dem Begriff Vererbung? Elternkonstrukt - Datenelemente - Methoden o Deklaration o Definition Kindkonstrukt... Main... Elternkonstrukt b = new Kindkonstrukt() b.fn() Komponenten &

Mehr

Interfaces. Definition von Interfaces Verwendung von Interfaces Vordefinierte Interfaces Beispiele. Dr. Beatrice Amrhein

Interfaces. Definition von Interfaces Verwendung von Interfaces Vordefinierte Interfaces Beispiele. Dr. Beatrice Amrhein Interfaces Definition von Interfaces Verwendung von Interfaces Vordefinierte Interfaces Beispiele Dr. Beatrice Amrhein Definition: Interface Ein Interface dient dazu, Schnittstellen klar zu definieren

Mehr

Was du ererbt von Deinen Vätern hast, erwirb es, um es zu besitzen. J. W. v. Goethe.

Was du ererbt von Deinen Vätern hast, erwirb es, um es zu besitzen. J. W. v. Goethe. Was du ererbt von Deinen Vätern hast, erwirb es, um es zu besitzen. J. W. v. Goethe http://www.zitate-online.de/autor/goethe-johann-wolfgang-von/ http://www.weimar-lese.de/files_weimar_lese/johann_wolfgang_von_goethe_bearbeitet_von_andreas_werner.jpg

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. Objektorientierte Programmierung mit C++

4. Objektorientierte Programmierung mit C++ 4. Objektorientierte Programmierung mit C++ Einführung C++ / Entwicklung der Sprachfamilie Erweiterungen der Sprache C: Ein- und Ausgabe, Referenzen, Speicherallokation und Freigabe Grundlagen des Typkonzepts

Mehr

Verhaltensmuster. Entwurfsmuster - Design Patterns. HAW Hamburg Fakultät Technik und Informatik Department Informations- und Elektrotechnik

Verhaltensmuster. Entwurfsmuster - Design Patterns. HAW Hamburg Fakultät Technik und Informatik Department Informations- und Elektrotechnik Entwurfsmuster - Design Patterns HAW Hamburg Fakultät Technik und Informatik Department Informations- und Elektrotechnik 27. November 2009 Gliederung 1 Einführung 2 Strategie-Muster 3 Beobachter-Muster

Mehr

Grafische Benutzeroberflächen

Grafische Benutzeroberflächen Gilbert Beyer und Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik http://www.pst.ifi.lmu.de/lehre/wise-11-12/infoeinf WS11/12 Aufgabe Ein Benutzer soll zwei Zahlen in ein Programm

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

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

Abstrakte Basisklassen

Abstrakte Basisklassen Softwareentwicklung II (IB) Abstrakte Basisklassen Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 24.06.2018 15:20 Inhaltsverzeichnis Idee.........................................

Mehr

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

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen

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

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

Programmieren in Java

Programmieren in Java Programmieren in Java Vorlesung 06: Das Visitor Pattern Prof. Dr. Peter Thiemann (vertreten durch Luminous Fennell) Albert-Ludwigs-Universität Freiburg, Germany SS 2015 Peter Thiemann (Univ. Freiburg)

Mehr

Übungsblatt 13. Abgabe / Besprechung in Absprache mit dem Tutor

Übungsblatt 13. Abgabe / Besprechung in Absprache mit dem Tutor Albert-Ludwigs-Universität Freiburg Institut für Informatik Einführung in die Informatik Sommersemester 2018 Prof. Dr. Wolfram Burgard Andreas Kuhner Daniel Büscher Übungsblatt 13 Abgabe / Besprechung

Mehr

II.4.1 Unterklassen und Vererbung - 1 -

II.4.1 Unterklassen und Vererbung - 1 - n 1. Grundelemente der Programmierung n 2. Objekte, Klassen und Methoden n 3. Rekursion und dynamische Datenstrukturen n 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.4.1 Unterklassen und

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 10: Mehr zur Vererbung und abstrakte Klassen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Mehr zur Vererbung Methoden vererben und überschreiben

Mehr

Aufgabe 1 (Programmanalyse, Punkte)

Aufgabe 1 (Programmanalyse, Punkte) 2 Aufgabe 1 (Programmanalyse, 8 + 6 Punkte) a) Geben Sie die Ausgabe des Programms für den Aufruf java M an. Schreiben Sie hierzu jeweils die ausgegebenen Zeichen hinter den Kommentar OUT:. public class

Mehr

II.4.1 Unterklassen und Vererbung - 1 -

II.4.1 Unterklassen und Vererbung - 1 - 1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.4.1 Unterklassen und Vererbung

Mehr

Grafische Benutzeroberflächen

Grafische Benutzeroberflächen 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/ Aufgabe Ein Benutzer soll

Mehr

Entwurfsmuster - Iterator

Entwurfsmuster - Iterator HTWG Konstanz 7. Mai 2009 Muster Klassifikation objektbasiertes Verhaltensmuster des Patterns Ermögliche den sequentiellen Zugriff auf die Elemente eines zusammengestzten Objekts, ohne seine zugrundeligende

Mehr

Vererbung. Definition Felder Konstruktor Methoden Beispiel. Dr. Beatrice Amrhein

Vererbung. Definition Felder Konstruktor Methoden Beispiel. Dr. Beatrice Amrhein Vererbung Definition Felder Konstruktor Methoden Beispiel Dr. Beatrice Amrhein Definition 2 Definition: Vererbung Die Vererbung dient dazu, mit Hilfe von existierenden Klassen neue Klassen zu implementieren.

Mehr

Vererbung P rogram m ieren 2 F örster/r iedham m er K apitel 11: V ererbung 1

Vererbung P rogram m ieren 2 F örster/r iedham m er K apitel 11: V ererbung 1 Vererbung 1 11.1 Motivation und Begriffsdefinitionen 11.2 Vorgehensweise und Implementierung 11.3 Arten von Vererbung 11.4 Konstruktoren 11.5 Abstrakte Klasse 11.6 Verschattung 11.7 Wurzelklasse Object

Mehr

Remote Method Invocation

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

Mehr

Structural Patterns. B. Sc. Andreas Meißner

Structural Patterns. B. Sc. Andreas Meißner Structural Patterns B. Sc. Andreas Meißner Seminar Software-Entwurf Fachgebiet Software Engineering, Institut für Angewandte Systeme, Universität Hannover 11/16/2004 Gliederung 1. Wiederholung Entwurfsmuster

Mehr

Kapitel 5: Interfaces

Kapitel 5: Interfaces Liste P: Programmieren mit Java WS 2001/2002 Prof. Dr. V. Turau FH Wiesbaden Kapitel 5: Interfaces Folie 82 : Einleitung Betrachtet man die Programmierleistung für ein Produkt über einen längeren Zeitraum,

Mehr

2.13 Vererbung. Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/ Article

2.13 Vererbung. Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/ Article 2.13 Vererbung Klassen modellieren Objekte der realen Welt. Diese sind oft hierarchisch gegliedert. Beispiel: Ein Verlag bietet Bücher und CDs an. Beide Medien sind Artikel des Verlages. Book author: String

Mehr

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Übung zur Vorlesung Einführung in die Informatik 2 für Ingenieure (MSE) Alexander van Renen (renen@in.tum.de)

Mehr

Entwurfsmuster - Iterator & Composite

Entwurfsmuster - Iterator & Composite Entwurfsmuster - Iterator & Composite Alexander Rausch Seminar Entwurfsmuster WS08/09 19. November 2008 Gliederung 1 Einführung 2 Das Iterator Entwurfsmuster 3 Das Composite Entwurfsmuster 4 Quellen 5

Mehr

Strukturmuster. Definieren von Objekt-Beziehungen

Strukturmuster. Definieren von Objekt-Beziehungen Strukturmuster Definieren von Objekt-Beziehungen Einleitung Strukturmuster beschreiben die Zusammensetzung und die Beziehungen von Klassen und Objekten zu grösseren Strukturen. o Sie legen fest, welche

Mehr

Probeklausur Java Einführung in die Informatik. Wintersemester 2014/2015

Probeklausur Java Einführung in die Informatik. Wintersemester 2014/2015 Fakultät IV NI & CV Probeklausur Java Einführung in die Informatik Wintersemester 2014/2015 Hinweis: Diese Probeklausur ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der schriftlichen

Mehr

Wiederholung. Klassenhierarchie:

Wiederholung. Klassenhierarchie: Wiederholung Klassenhierarchie: class Unter extends Ober {... Die Unterklasse Unter erweitert die Funktionalität ihrer Oberklasse Ober. Objekte der Klasse Unter können anstelle von Objekten der Klasse

Mehr

ALP II Dynamische Datenmengen

ALP II Dynamische Datenmengen ALP II Dynamische Datenmengen Teil III Iteratoren Iterator-Objekt O1 O2 O3 O4 SS 2012 Prof. Dr. Margarita Esponda 22. ALP2-Vorlesung, M. Esponda 2 Motivation: Iteratoren Wir haben für die Implementierung

Mehr

Abstrakte Basisklassen

Abstrakte Basisklassen Abstrakte Basisklassen Softwareentwicklung II (IB) Prof. Dr. Oliver Braun Letzte Änderung: 24.06.2018 15:20 Abstrakte Basisklassen 1/18 Idee (1/2) Gegensätze: Interfaces ausschließlich Methodenköpfe, keine

Mehr

Programmieren II. Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz Institut für Angewandte Informatik

Programmieren II. Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz Institut für Angewandte Informatik Programmieren II Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz 9.6 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Abstrakte Klassen: Motivation Prinzip der Vererbung: Aus

Mehr

13 Abstrakte Datentypen

13 Abstrakte Datentypen 13 Abstrakte Datentypen Bisher: Konkrete Datentypen Menge von Elementen Operationen auf den Elementen (Konstruktoren, Selektoren, Typprädikate) Eigenschaften abgeleitet Jetzt: Abstrakte Datentypen (ADT)

Mehr

Programmieren II. Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz Institut für Angewandte Informatik

Programmieren II. Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz Institut für Angewandte Informatik Programmieren II Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz 9.6 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Abstrakte Klassen: Motivation Grundidee abstrakter Klassen:

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

Grafische Benutzeroberflächen

Grafische Benutzeroberflächen Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"

Mehr

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester

Mehr

Software-Architektur. Design Patterns. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München

Software-Architektur. Design Patterns. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München Software-Architektur Design Patterns Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 11.07.2017 15:12 Inhaltsverzeichnis Standardwerk.................................... 2 Design

Mehr