Vorlesung Informatik II

Größe: px
Ab Seite anzeigen:

Download "Vorlesung Informatik II"

Transkript

1 Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 05. UML: Klassendiagramm 1

2 Klassendiagramm Im Klassendiagramm werden Klassen und ihre Beziehungen zueinander graphisch dargestellt Ein Klassendiagramm beschreibt das statische Datenmodell des Systems Ein Klassendiagramm definiert einen Namensraum für Klassennamen und Objektnamen Beziehungen können Assoziationen und Generalisierungen sein 2

3 Assoziationen Assoziationen beschreiben gleichartige Beziehungen zwischen Objekten Angestellter ist Vorgesetzter von Angestellter Professor betreut Diplomarbeit Menge besteht aus Elementen Verzeichnis ist ein Dateiobjekt 3

4 Assoziationen Assoziationen beschreiben gleichartige Beziehungen zwischen Objekten An einer Assoziation müssen mindestens zwei Objekte beteiligt sein Solche Beziehungen lassen sich in der Regel durch Verben beschreiben Werden grafisch durch Verbindungslinien zwischen den beteiligten Klassen dargestellt 4

5 Assoziationen Assoziationen weisen den beteiligten Klassen Multiplizitäten und Rollen zu können einen beschreibenden Namen besitzen können Navigierbarkeit besitzen können Einschränkungen unterliegen (Datenstruktur-Invarianten) können Eigenschaftswerte haben 5

6 Assoziationen Multiplizität Beschreibt Grenzen für die Anzahl von Objekten der anderen Klasse, die mit einem Objekt der betrachteten Klassen in Beziehung stehen können Wird an das Ende der Verbindunglinie bei der anderen Klasse in folgender Form angegeben: n..m mindestens n, höchstens m Objekte der anderen Klasse stehen mit einem Objekt der betrachteten Klasse in Beziehung Sonderfälle 0..m,n..*,1..m wie bei Attributen 6

7 Assoziationen Rolle Beschreibt die Funktion oder Aufgabe eines Objekts in einer Beziehung Rollen müssen zugewiesen werden, wenn zwischen bestimmten Klassen mehr als eine Assoziation besteht bei reflexiven Assoziationen (zwischen Objekten einer Klasse) Wird an das Ende der Verbindunglinie bei der betrachteten Klasse angegeben 7

8 Assoziationen Name Beschreibt die Art der Beziehung, in der Regel durch ein Verb. Bei binären Assoziationen: <Klassenname> <Assoziationsname> <Klassenname> sollte einen lesbaren Satz ergeben Der Name beschreibt eine Richtung der Beziehung Namen müssen zugewiesen werden, wenn zwischen bestimmten Klassen mehr als eine Assoziation besteht Wird in der Mitte der Verbindunglinie angegeben (mit Pfeil für die Lesrichtung bei binären Assoziationen) 8

9 Assoziationen Navigierbarkeit gibt an, ob Objekte einer betrachteten Klasse auf Objekte anderer an der Beziehung beteiligter Klassen zugreifen können Eine binäre Assoziation kann dabei uni-direktional sein (nur in eine Richtung navigierbar) bi-direktional sein (in beide Richtungen navigierbar) Brauchen Operationen Informationen über assoziierte Objekte? Ja: Navigierbarkeit einfügen Wird grafisch durch Pfeilspitzen in Richtung der Navigierbarkeit an Verbindungslinie angegeben 9

10 Assoziationen Navigierbarkeit In Java gibt es keine Assoziationen Stattdessen werden sog. Referenzattribute benutzt Aufbau einer Objektbeziehung: Dieses Referenzattribut wird mit einem Objekt initialisiert Auf die Daten dieses assoziierten Objekts wird über das Referenzattribut zugegriffen Achtung: Im UML-Modell tauchen diese Referenzattribute NICHT auf 10

11 Assoziationen Assoziationen: Grafische Darstellung <Klassenname> n.. m <rollenname > *.. <rollenname * > <Klassenname> <Klassenname> <assoziationsname> <Klassenname> 11

12 Assoziationen Beispiel: Angestellter ist Vorgesetzter von Angestellter Angestellter Vorgesetzter 1..1 Mitarbeiter 1..* ist Vorgesetzter von > Ein Vorgesetzter hat 1 oder mehrere Mitarbeiter Jeder Mitarbeiter hat genau einen Vorgesetzten Im System kennt der Vorgesetzte seine Mitarbeiter, aber nicht umgekehrt Muss zu fachlichen Gegebenheiten passen 12

13 Assoziationen Beispiel: Professor betreut Diplomarbeit Professor * betreut > betreuer diplomarbeiten Diplomarbeit Ein Professor betreut 0 oder mehrere Diplomarbeiten Eine Diplomarbeit hat genau einen Professor als Betreuer Der Professor kennt die von ihm betreuten Diplomarbeiten, umgekehrt nicht Muss zu fachlichen Gegebenheiten passen 13

14 Assoziationen Verwaltungsoperationen Um Objektbeziehungen herzustellen, zu löschen oder abzufragen benutzt man sog. link-, unlink- und getlink-operationen. Für jede bekannte Beziehung (Navigierbarkeit!) werden standardmäßig solche Operationen eingeführt 14

15 Assoziationen Verwaltungsoperationen: einwertige Beziehungen Eine link-operation stellt eine Beziehung zu einem existierenden Objekt her (es wird kein Objekt erzeugt!) Eine unlink-operation löst die Beziehung zu existierendem Objekt auf (es wird kein Objekt gelöscht!) Eine getlink-operation gibt das in Beziehung stehende Objekt zurück <Klasse1>... link<rolle>(in k:<klasse2>) unlink<rolle>() getlink<rolle>():<klasse2> <n..1> <rolle> <Klasse2> 15

16 Assoziationen Verwaltungsoperationen: mehrwertige Beziehungen Eine link-operation stellt eine Beziehung zu einem existierenden Objekt her (es wird kein Objekt erzeugt!) Eine unlink-operation löst Beziehung zu einem existierenden Objekt auf (es wird kein Objekt gelöscht!) Eine getlink-operation gibt ein in Beziehung stehendes Objekt zurück <Klasse1>... link<rolle>(in k:<klasse2>) unlink<rolle>(in k:<klasse2>) getlink<rolle>(in pos:integer): <Klasse2> <n..*> <rolle> <Klasse2> 16

17 Assoziationen Verwaltungsoperationen: bi-direktionale Assoziationen Entsprechende link-, unlink- und getlink-operationen werden in beide Klassen eingetragen Implementierung: Es muss jeweils auf die wechselseitig konsistente Verwaltung geachtet werden Jede link-operation sorgt für das Herstellen einer Objektbeziehung in beide Richtungen! Jede unlink-operation sorgt für das Löschen einer Objektbeziehung in beide Richtungen! 17

18 Assoziationen Beispiel: Angestellte, Mitarbeiter und Vorgesetzte Angestellter... linkmitarbeiter(in a: Angestellter) unlinkmitarbeiter(in a: Angestellter) getlinkmitarbeiter(in n:integer):angestellter Mitarbeiter 1..* Vorgesetzter 1..1 ist Vorgesetzter von 18

19 Assoziationen Ist das Modell korrekt? Es gibt nie das korrekte oder das beste Modell, sondern immer mehrere verschiedene mögliche Alternativen, einen Sachverhalt zu modellieren Oft muss eine Trade-Off zwischen verschiedenen Kriterien gefunden werden: Beispiel: Weniger Navigierbarkeit > einfacher zu implementieren, aber u.u. eingeschränkte Funktionalität Wichtig: man muss seinen Modellierungsvorschlag begründen können 19

20 Assoziationen Assoziationsklassen Sind Assoziationen mit Attributen, Operationen und Assoziationen zu anderen Klassen Assoziationsklassen können in Assoziationen und eine normale Klasse aufgelöst werden (beachte Anpassung der Multiplizitäten und Navigierbarkeiten) Grafisch wie Klassen, durch gestrichelte Linie mit Assoziationsverbindungslinie verbunden 20

21 Assoziationen Assoziationsklasse: Grafische Darstellung <Klassenname> <Klassenname> <Assklassenname> 21

22 Assoziationen Beispiel: Student leiht Buch aus Student leiht aus 0.. * Buch Ausleihe datum zeitraum Student * Ausleihe datum zeitraum Buch 22

23 Aggregationen Eine Assoziation zwischen zwei Klassen ist eine Aggregation, wenn zwischen den Objekten der beteiligten Klassen eine Rangordnung im Sinne von ist Teil von bzw. besteht aus gilt. Eine der Klassen ist das Ganze, die andere Klasse seine Teile Aggregationen dürfen keine Zyklen bilden Objekte können Teile von mehreren Ganzen sein, existieren also unabhängig vom Ganzen Navigierbarkeit: Das Ganze kennt seine Teile Grafisch dargestellt durch nicht ausgefüllte Raute am Ende der Verbindungslinie zum Ganzen 23

24 Aggregationen Verwaltungsoperationen Dienen der Verwaltung der Teile durch das Ganze Haben andere intuitivere Namen: insert-operation entspricht link-operation remove-operation entspricht unlink-operation get-operation entspricht getlink-operation 24

25 Aggregationen Aggregation: grafische Darstellung <Klassenname> ganzes besteht aus teile <Klassenname> 25

26 Aggregationen Beispiel: Menge aus Objekten einer Klasse Menge... insertelemente(in k:<klasse>) removeelemente(in k:<klasse>) getelemente(in pos:integer):<klasse> 0..* elemente <Klasse> 0..* 26

27 Kompositionen Eine Aggregation ist eine Komposition, wenn ein Objekt nur Teil eines Ganzen sein kann Wird das Ganze gelöscht, werden automatisch auch seine Teile gelöscht Grafisch dargestellt durch ausgefüllte Raute am Ende der Verbindungslinie zum Ganzen Verwaltungsoperationen haben andere intuitivere Namen: add-operation entspricht link-operation delete-operation entspricht unlink-operation get-operation entspricht getlink-operation 27

28 Kompositionen Komposition: grafische Darstellung <Klassenname> 0..1 ganzes teile <Klassenname> 28

29 Kompositionen Beispiel: Verzeichnis besteht aus Dateiobjekten Verzeichnis... addelemente(in d:<dateiobjekt>) deleteelemente(in d:<dateiobjekt>) getelemente(in p:integer):<dateiobjekt> elemente * Dateiobjekt Irgendwas passt hier aber noch nicht: Verzeichnisse sind doch auch Dateiobjekte!? Modell (noch) unvollständig/ungenau (Verbesserung später) 29

30 Mehrwertige Assoziationen Mehrwertige Assoziationen beschreiben Beziehungen zwischen Objekten von drei oder mehr verschiedenen Klassen <Klassenname> <Klassenname> Auch hier ist die Angabe von Rollen und Assoziationsnamen (ohne Richtung) möglich Navigierbarkeit und Multiplizitäten nur eingeschränkt modellierbar Braucht man selten <Klassenname> 30

31 Generalisierung Eine Assoziation zwischen zwei Klassen ist eine Generalisierung, wenn zwischen den Objekten der beteiligten Klassen eine Rangordnung im Sinne von ist ein gilt Generalisierungen dürfen keine Zyklen bilden Generalisierungen erlauben keine Angabe von Navigierbarkeit, Rollen, Multiplizitäten und Namen (diese Eigenschaften sind alle implizit klar) 31

32 Generalisierung Jedes Objekt der sog. Unterklasse ist ein Objekt der sog. Oberklasse Eine Generalisierung beschreibt die Beziehung zwischen einer (allgemeinen) Klasse (Oberklasse) und einer Spezialisierung dieser Klasse (Unterklasse) Grafisch dargestellt durch eine geschlossene, nicht ausgefüllt Pfeilspitze am Ende der Verbindungslinie zur Oberklasse 32

33 Generalisierung Jedes Objekt der sog. Unterklasse ist ein Objekt der sog. Oberklasse Ein Objekt der Unterklasse hat alle Attribute, Operationen und Assoziationen der Oberklasse und enthält zusätzliche Informationen in Form von zusätzlichen Attributen, Operationen und Assoziationen Attribute, Operationen und Assoziationen der Oberklasse werden nicht noch einmal für die Unterklasse angegeben 33

34 Generalisierung Generalisierung: grafische Darstellung <Oberklassenname> <Unterklassenname> <Unterklassenname> 34

35 Generalisierung Beispiel: Dateien und Verzeichnisse sind Dateiobjekte Dateiobjekt 0.. * Datei Verzeichnis Auch hier passt eigentlich noch was nicht: Wird man jemals ein Objekt vom Typ Dateiobjekt erzeugen, das keine Datei oder Verzeichnis ist? Nein! Modellierung als sog. Abstrakte Klasse (später) 35

36 Generalisierung Beispiel: Dateien und Verzeichnisse sind Dateiobjekte Dateiobjekt name erstelldatum 0.. * Datei groesse Verzeichnis freigabe Gemeinsame und spezielle Attribute 36

37 Generalisierung Beispiel: Dateien und Verzeichnisse sind Dateiobjekte Dateiobjekt... kopieren() 0.. * Datei... speichern() Verzeichnis... freigeben() Gemeinsame und spezielle Operationen 37

38 Generalisierung Vererbungsprinzip Die Oberklasse vererbt ihre Attribute, Operationen und Beziehungen an die Unterklasse Ein Objekt der Unterklasse besitzt alle Attribute der Oberklasse Alle Operationen der Oberklasse können über Objekte der Unterklasse aufgerufen werden Ein Objekt der Unterklasse ist an allen Assoziationen der Oberklasse beteiligt Die Objekte einer Klasse kennen alle Oberklassen (aber nicht die Unterklassen!) 38

39 Generalisierung Substitutionsprinzip Objekte von Unterklassen können jederzeit als ein Objekt einer Oberklassen verwendet werden Entspricht einer Typausweitung 39

40 Generalisierung Objekt-Verantwortlichkeitsprinzip Jede Klasse definiert einen Verantwortlichkeitsbereich. Attribute und Operationen werden entsprechend dem Verantwortlichkeitsbereich einer möglichst speziellen Klasse in einer Vererbungshierarchie zugeordnet 40

41 Generalisierung Top-Down-Entwurf einer Vererbungshierarchie: Bildung von Unterklassen durch Addition von Attributen, Operationen und Assoziationen zu einer Klasse Beispiel: Ein Tutor ist eine Spezialisierung eines Studenten 41

42 Generalisierung Bottom-Up-Entwurf einer Vererbungshierarchie: Bildung von Oberklassen durch Zusammenfassen gemeinsamer Merkmale mehrerer Klassen Oft sind das abstrakte Klassen, die nur der Modellierung gemeinsamer Informationen von spezialisierten Klassen dienen, von denen aber keine Objekte erzeugt werden 42

43 Generalisierung Prinzip abstrakter Klassen Klassen, von denen keine Objekte erzeugt werden können oder sollen, heißen abstrakte Klassen Eine abstrakte Klasse stellt gemeinsame Eigenschaften und Operationen für ihre Unterklassen zur Verfügung Darstellung wie Klassen, zusätzliche Schlüsselwort abstract 43

44 Generalisierung Prinzip abstrakter Klassen Klassen, von denen keine Objekte erzeugt werden können oder sollen, heißen abstrakte Klassen Abstrakte Klassen können konkrete Operationen enthalten Abstrakte Klassen enthalten in der Regel abstrakte Operationen, die sie nicht implementieren Unterklassen müssen abstrakte Operationen implementieren Abstrakte Operationen haben in verschiedenen Unterklassen i.d.r. unterschiedliche Implementierung 44

45 Generalisierung Prinzip abstrakter Operationen Werden in der betrachteten Klasse nicht implementiert, sondern nur vereinbart durch Angabe des Prototypen (Signatur) Durch abstrakte Operationen werden gemeinsame Signaturen für Unterklassen definiert. In der Implementierung müssen die Unterklassen die abstrakte Operation durch konkrete Operationen überschreiben Klassen mit abstrakten Operationen müssen auch abstrakt sein 45

46 Generalisierung Beispiel: Dateien und Verzeichnisse sind Dateiobjekte <<abstract>> Dateiobjekt... getname() kopieren() {abstract} 0..* Datei... kopieren() Verzeichnis... kopieren() Implementierung abstrakter Operationen in Unterklassen 46

47 Generalisierung Polymorphismus: Unterklassen können Operationen von Oberklassen überschreiben (redefinieren) und unterschiedlich implementieren Derselbe Operationsaufruf für Objekte verschiedener Klassen einer Vererbungshierarchie führt zur Ausführung unterschiedlicher Operationen (Aufruf für jedes Dateiobjekt o: o.kopieren()) Der Aufrufer muss die genaue Klasse eines Empfängerobjekts (Verzeichnis oder Datei) nicht kennen, sondern nur wissen, dass die Operation zur Verfügung steht (ist ein Dateiobjekt) 47

48 Generalisierung Spätes Binden: Beim Übersetzen des Programms muss für ein Objekt der Oberklasse noch nicht bekannt ist, zu welcher Unterklasse es gehört. Erst zur Laufzeit wird die Operation an das Objekt gebunden. Einheitlicher Aufruf für potentiell unterschiedliche Objekte Dadurch werden Mehrfachauswahlen vermieden Beispiel: for all o in list: o.kopieren() 48

49 Generalisierung Überschreiben vs. Überladen Überladen: Eine Operation kann innerhalb einer Klasse öfter mit verschiedenen Signaturen vorkommen (Operation println() der Klasse PrintStream) Überschreiben: Eine Operation einer Oberklasse kann von einer Operation einer Unterklasse mit gleicher Signatur überschrieben werden 49

50 Generalisierung Überschreiben von Attributen Unterklassen können Attribute von Oberklassen durch Namensgleichheit verbergen In diesem Fall sind beide Attribute vorhanden und das geerbte Attribut ist in der Unterklasse nicht sichtbar Programmiersprachen stellen Notationen für den Zugriff auf verborgene Attribute bereit 50

51 Generalisierung Mehrfachvererbung Grundsätzlich können Objekte von mehreren Klassen erben (mehrere Oberklassen haben) Da dies in Java nicht adäquat abgebildet werden kann, wollen wir in dieser Vorlesung darauf verzichten Vereinbarung: Jede Klasse ist Unterklasse von höchstens einer Oberklasse 51

52 Generalisierung Vorteile: Einfache Modellierung neuer spezialisierter Klassen unter Verwendung existierender Klassen Leichte Durchführbarkeit von Änderungen (Änderungen an einer Oberklasse sind auch für alle Unterklassen wirksam) Nachteile: Zur Kenntnis einer Klasse muss man auch alle ihre Oberklassen kennen Bei Hinzufügen/Änderung einer Oberklasse müssen u.u. auch alle Unterklassen verändert werden 52

53 Schnittstellen Eine Schnittstelle ist eine Sammlung von abstrakten Operationen und konstanten Klassenattributen Schnittstellen dürfen keine konkreten Operationen haben Durch abstrakte Operationen werden gemeinsame Signaturen für Klassen zur Verfügung gestellt. Angabe wie Klassen, zusätzlich mit Schlüsselwort interface Operationen werden nicht extra als abstract gekennzeichnet 53

54 Schnittstellen Klassen können Schnittstellen implementieren Dazu implementieren sie alle spezifizierten Operationen konkret und können die konstanten Klassenattribute benutzen Verschiedene Klassen können dieselbe Schnittstelle auf unterschiedliche Weise implementieren Eine Klasse kann mehrere Schnittstellen implementieren (Ersatz für Mehrfachvererbung) Zwischen Schnittstellen gibt es Generalisierungsbeziehungen Angabe durch gestrichelten Generalisierungspfeil 54

55 Schnittstellen Schnittstellen-Prinzip In der Schnittstelle spezifizierte Operationen können für jede implementierende Klasse auf dieselbe Weise aufgerufen werden (Schnittstellen können als Datentyp benutzt werden) 55

56 Schnittstellen Grafische Darstellung <<interface>> <Schnittstellenname> <Klassenname> <Klassenname> 56

57 Schnittstellen Beispiel: Durchlaufen von dynamischen Feldern (Klassenbibliothek: Iteratormuster) <<interface>> Iterable<E> iterator():iterator<e> <<interface>> Iterator<E> hasnext():boolean next():<e> remove() Vector ArrayList... 57

58 Sichtbarkeiten Für Klassen, Attribute, Operationen und Assoziationen kann man Sichtbarkeiten spezifizieren, die deren Benutzbarkeit durch andere Modellelemente einschränkt + überall sichtbar (public) - innerhalb des eigenen Namensraums sichtbar (private) # innerhalb aller Spezialisierungen des eigenen Namensraums sichtbar (protected) ~ innerhalb des eigenen Pakets sichtbar (package) Wird vor dem Namen angegeben 58

59 Sichtbarkeiten Für Klassen (In welchen anderen Klassen stehen Objekte der Klasse zur Verfügung): + überall sichtbar - innerhalb des eigenen Pakets # nicht benutzbar ~ nicht benutzbar 59

60 Sichtbarkeiten Für Attribute (Objekte welcher Klassen können auf den Attributwert ohne Operation zugreifen): + überall sichtbar - sichtbar in der Klasse # sichtbar innerhalb der Klasse und allen Unterklassen ~ sichtbar im Paket 60

61 Sichtbarkeiten Für Operationen (Objekte welcher Klassen können die Operation aufrufen): + überall sichtbar - sichtbar in der Klasse # sichtbar innerhalb der Klasse und allen Unterklassen ~ sichtbar im Paket 61

62 Sichtbarkeiten Für Assoziationen: Angabe für Rollen + überall sichtbar - sichtbar in der Klasse # sichtbar innerhalb der Klasse und allen Unterklassen ~ sichtbar im Paket 62

63 Sichtbarkeiten Geheimnisprinzip Als Sichtbarkeitsstandard für Attribute und Assoziationen sollte immer wenn möglich private gewählt werden Bei Operationen: Kann man durch Aufruf Datenstrukturinvariante zerstören? Wird die Aufrufbarkeit von außerhalb benötigt? Vorteile: Konsistenzprüfung möglich, bessere Modifizierbarkeit und Wartbarkeit, Schutz von Datenstruktur-Invarianten Nachteile: Zusätzliche Operationen 63

64 Sichtbarkeiten Beispiel: Menge von Objekten einer Klasse implementiert als einfach verkettete Liste Knoten - next start + Liste -size:integer = wert + <Klasse> 64

65 Sichtbarkeiten Beispiel: Menge von Objekten einer Klasse implementiert als einfach verkettete Liste: Geheimnisprinzip? + Knoten + Knoten() + Knoten(wert:<Klasse>) + linkwert(k:<klasse>) + unlinkwert() + getlinkwert():<klasse> + linknext(k:knoten) + unlinknext() + getlinknext():knoten - start Liste - size:integer =0 + Liste() + getsize():integer - setsize(n:integer) - linkstart(k:knoten) - unlinkstart() - getlinkstart():knoten + insert(o:<klasse>)... 65

66 Containerklassen Containerklassen werden zur Verwaltung von Objekten anderer Klassen eingesetzt Eine Containerklasse enthält nur ein Objekt, das Container genannt wird (Beispiel: Listen, dynamische Felder, ). Es enthält die zu verwaltenden Objekte. Es werden Standardoperationen zum Zugriff auf verwaltete Objekte bereitgestellt (Einfügen, Löschen, Suchen) Beziehung des Containers zu der Klasse der verwalteten Objekte ist eine Komposition 66

67 Containerklassen Containerklassen werden durch das sog. Singleton-Muster modelliert Das Singletonmuster stellt sicher, dass höchstens ein Objekt einer Klasse erzeugt werden kann: 1. Konstruktor ist private 2. Verwaltung des Objekts durch ein privates Klassenattribut (unique) [zeigt am Anfang auf null] 3. Zugriff/Erzeugung über öffentliche Klassenoperation (instance), die das Objekt zurückgibt [überprüft, ob Objekt existiert und erzeugt es, falls nicht] 67

68 Containerklassen Grafische Darstellung + <Containerklasse> - unique :<Containerklasse> =null - <Containerklasse>() + instance(): <Containerklasse> alleobjekte 0..* + <Klasse> 68

69 Containerklassen Beispiel: Professoren + ProfessorenContainer - unique :ProfessorenContainer =null - ProfessorenContainer() + instance(): ProfessorenContainer + addprofessor(in p:professor) + deleteprofessor(in p:professor) + getprofessor(in p:integer):professor - alleprofessoren * + Professor 69

70 Containerklassen Containerklassen erhalten die Klassenattribute und operationen der verwalteten Klasse als Objektattribute und -operationen <Containerklasse> <Klasse> <Attribut> <Operation>() <Attribut> <Operation> - alleobjekte <Klasse> * 70

71 Containerklassen Beispiel: Klassenattribute und operationen <Containerklasse> <Klasse> anzahl getanzahl() anzahl getanzahl() - alleobjekte <Klasse> * 71

72 Muster Muster sind generische Lösungen für wiederkehrende Entwurfsprobleme Erhöhen die Standardisierung und damit die Qualität und Wartbarkeit des Entwurfs und der Software Muster werden durch Klassendiagramme beschrieben Beispiel: Singletonmuster, falls es höchstens ein Objekt einer Klasse geben soll In der Praxis: Vielzahl von Mustern In dieser Vorlesung: 2-3 exemplarische Muster 72

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

Aufgabe 1: Strukturmodellierung mittels Klassendiagramm Wiederholen Sie das Kapitel aus der Vorlesung, das sich mit dem Klassendiagramm beschäftigt.

Aufgabe 1: Strukturmodellierung mittels Klassendiagramm Wiederholen Sie das Kapitel aus der Vorlesung, das sich mit dem Klassendiagramm beschäftigt. Aufgabe 1: Strukturmodellierung mittels Klassendiagramm Wiederholen Sie das Kapitel aus der Vorlesung, das sich mit dem Klassendiagramm beschäftigt. Was ist eine Klasse? Was ist ein Objekt? Geben Sie ein

Mehr

8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure

8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure 8. Objektorientierte Programmierung Informatik II für Verkehrsingenieure Grundbegriffe ALAN KAY, ERFINDER DER SPRACHE SMALLTALK, HAT DIE GRUNDBEGRIFFE DER OBJEKTORIENTIERTEN PROGRAMMIERUNG WIE FOLGT ZUSAMMENGEFASST:

Mehr

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 12. UML GUI-Schicht 1 GUI-Schicht Sichtbarmachen

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

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

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

Theorie zu Übung 8 Implementierung in Java

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

Mehr

Begriffe 1 (Wiederholung)

Begriffe 1 (Wiederholung) Begriffe 1 (Wiederholung) Klasse Eine Klasse ist der Bauplan für ein oder mehrere Objekte. In einer Klasse werden Dienste (Methoden) zur Verfügung gestellt. Klassennamen beginnen mit einem Großbuchstaben.

Mehr

Geoinformation I Datenmodellierung

Geoinformation I Datenmodellierung Seite 1 von 61 Geoinformation I Datenmodellierung Seite 2 von 61 Datenmodellierung Übersicht Datenverwaltung und Datenbanken objektorientierte Abbildung der Realität Grundlagen der Objektorientierung Darstellung

Mehr

Objektorientierte Modellierung

Objektorientierte Modellierung Objektorientierte Modellierung KLASSENDIAGRAMM Klasse = Typebene zum Beschreiben mehrerer Objekte der selben Struktur Objekt = konkrete Ausprägung einer Klasse Instanz = Objekt Klassendiagramm = beschreibt

Mehr

Systemanalyse. - Folien zur Vorlesung für AI3 im Sommersemester Teil 5 -

Systemanalyse. - Folien zur Vorlesung für AI3 im Sommersemester Teil 5 - Systemanalyse - Folien zur Vorlesung für AI3 im Sommersemester 2010 - -Teil 5 - Hans-Jürgen Steffens (by courtesy of Prof. Dr. Thomas Allweyer) Fachbereich Informatik und Mikrosystemtechnik Fachhochschule

Mehr

Algorithmen und Datenstrukturen 06

Algorithmen und Datenstrukturen 06 31. Mai 2012 1 Besprechung Blatt 5 Fragen 2 Objektorientierte Programmierung Allgemein Sichtbarkeit Konstanten 3 Unified Modeling Language (UML) Klassendiagramme Anwendungsfalldiagramme 4 Vorbereitung

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

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

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

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 11. UML: Sequenzdiagramm 1 Motivation Es

Mehr

Objektorientierte Analyse (OOA) Strukturmodellierung

Objektorientierte Analyse (OOA) Strukturmodellierung Strukturmodellierung Seite 1 Strukturmodellierung Seite 2 Anwendung im Projekt Strukturmodellierung Voraussetzung: Use Case Diagramm liefert die funktionelle Gliederung mit Angabe der Ein- und Ausgaben

Mehr

Tafelübung 07 Algorithmen und Datenstrukturen

Tafelübung 07 Algorithmen und Datenstrukturen Tafelübung 07 Algorithmen und Datenstrukturen Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Vererbung Grundlagen Abstrakte

Mehr

UML -Klassendiagramme

UML -Klassendiagramme UML -Klassendiagramme UML - offline: ArgoUML http://argouml.stage.tigris.org/ UML online: Links genmymodel.com umlet.com/umletino/umletino.html Arten von UML-Diagrammen Diagramm Strukturdiagramm Verhaltensdiagramm

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

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

Betreutes Programmieren Vorlesung Informatik II, Blatt 4

Betreutes Programmieren Vorlesung Informatik II, Blatt 4 SS 2011 Fakultät für Angewandte Informatik Lehrprofessur für Informatik 15.05.2011 Prof. Dr. Robert Lorenz Betreutes Programmieren Vorlesung Informatik II, Blatt 4 Programmieraufwand für geübte Programmierer:

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

Von der UML nach C++

Von der UML nach C++ 22 Von der UML nach C++ Dieses Kapitel behandelt die folgenden Themen: Vererbung Interfaces Assoziationen Multiplizität Aggregation Komposition Die Unified Modeling Language (UML) ist eine weit verbreitete

Mehr

Klassendiagramm. Kurzer Überblick über UML - Stand 2006. BlaBla

Klassendiagramm. Kurzer Überblick über UML - Stand 2006. BlaBla BlaBla Diese Kennzeichnungen sind nur Erläuterungen und nicht Bestandteil des Diagramms Quelle: P.Grässle, H.Baumann, P.Baumann, UML projektorientiert, Galileo Verlag, 2003 21 Primäre Begriffe Kapselung

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

15 Unified Modeling Language (UML) 7 UML und Java Informatik 2 (SS 07) 595

15 Unified Modeling Language (UML) 7 UML und Java Informatik 2 (SS 07) 595 Überblick 15. Unified Modeling Language (UML) 15.1 Grundlagen 15.2 Klassen und Objekte 15.3 Vererbung 15.4 Schnittstellen 15.5 Generische Typen 15.6 Pakete 15.7 UML und Java 15.8 Zusammenfassung 15 Unified

Mehr

Herzlich willkommen!

Herzlich willkommen! Programmiertechnik 1 Herzlich willkommen! Dozent: Dipl.-Ing. Jürgen Wemheuer Mail: wemheuer@ewla.de Online: http://cpp.ewla.de/ Disclaimer 2 Diese Vorlesungs-/Unterrichtsfolien wurden durch den Dozenten

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

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

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

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

Unified Modelling Language

Unified Modelling Language Unified Modelling Language SEP 72 Software-Entwicklung Software-Entwicklung ist Prozess von Anforderung über Modellierungen zu fertigen Programmen Anforderungen oft informell gegeben fertige Programme

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

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Abstrakte Klassen und Methoden & Interfaces Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie

Mehr

Vererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus

Vererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus Vererbung Generalisierung und Spezialisierung Vererbung und Polymorphismus Wir wollen in unserem Aquarium verschiedene Arten von Fischen schwimmen lassen. In einem ersten Ansatz definieren wir nicht nur

Mehr

Einführung in die Programmiersprache Java II

Einführung in die Programmiersprache Java II Einführung in die Programmiersprache Java II ??????????? UML Klassendiagramm zeigt Klassen und ihre Beziehungen untereinander Visualisierung und Modellierung der statischen Struktur eines Systems Klassen

Mehr

Programmierkurs C++ Abstrakte Klassen und Methoden

Programmierkurs C++ Abstrakte Klassen und Methoden Programmierkurs C++ Abstrakte Klassen und Methoden Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie Obst double

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

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

Kurzeinführung in UML

Kurzeinführung in UML Kurzeinführung in UML Die Unified Modeling Language (UML) ist eine Sprache zur Beschreibung von Softwaresystemen. Der Grundgedanke bei UML bestand darin, eine einheitliche Notation für viele Einsatzgebiete

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

Software Engineering, SoSe 07, WSI, D. Huson, May 7,

Software Engineering, SoSe 07, WSI, D. Huson, May 7, Software Engineering, SoSe 07, WSI, D. Huson, May 7, 2007 17 4 Modellierung in UML Nach einer Vorlesung von Prof. Andreas Zeller, Lehrstuhl Softwaretechnik Universität des Saarlandes, Saarbrücken. 4.1

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

Informatik II Modellierung Übung 5 Petrinetze/Klassendiagramme

Informatik II Modellierung Übung 5 Petrinetze/Klassendiagramme I Informatik II Modellierung Übung 5 Petrinetze/Klassendiagramme Abgabetermin: 11. Juni 24.00 Uhr Per e-mail an Tutor Seite 1 / 9 Aufgabe 1 (3%) Klassendiagramme von einer abstrakten Klasse können keine

Mehr

Assoziationen in Java

Assoziationen in Java Assoziationen in Java Michael Dienert 16. Oktober 2018 1 Wiederholung: Gerneralisierung und Vererbung Gerneralisierung ist das Gegenteil von Vererbung: Eine spezielle Klasse erbt von der allgemeineren

Mehr

Instanz ist objeket einer klasse. bsp: elefant Name gewicht alter Frisst scheißt fliegt. Assoziation haben?

Instanz ist objeket einer klasse. bsp: elefant Name gewicht alter Frisst scheißt fliegt. Assoziation haben? A u f g abe 1 : a ) Was ist eine Klasse? Was ist ein Objekt? Geben Sie ein Beispiel fur eine Klasse mit mindestens je 3 Attributen und je 3 Operationen. Finden Sie zu dieser Klasse mindestens 3 Instanzen.

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

Vererbung und Polymorphie

Vererbung und Polymorphie Vererbung und Polymorphie Marc Satkowski, Sascha Peukert 29. September 2016 C# Kurs Gliederung 1. Methodenüberladung 2. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter

Mehr

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 06. Java: Von UML nach Java 1 Inhalt Für

Mehr

Einführung. Einführung

Einführung. Einführung Einführung Einführung Im Oktober 1994 haben sich Grady Booch und Jim Rumbaugh bei der Rational Software Corporation zusammengeschlossen, um ihre erfolgreichen Methoden zu einem einheitlichen Industriestandard

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

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

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

Überblick. Überblick zum weiteren Inhalt

Überblick. Überblick zum weiteren Inhalt Überblick 1. Einführung C++ / Entwicklung/ Sprachfamilie 2. Nicht objektorientierte Erweiterungen von C 2.1 Das Ein-/Ausgabekonzept von C++ 2.2 Referenzen in C++ 2.3 Heap-Allokatoren in C++ 3. Grundlagen

Mehr

Objektorientierte Modellierung (1)

Objektorientierte Modellierung (1) Objektorientierte Modellierung (1) Die objektorientierte Modellierung verwendet: Klassen und deren Objekte Beziehungen zwischen Objekten bzw. Klassen Klassen und Objekte Definition Klasse Eine Klasse ist

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

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

Kapitel 2: OO Grundlagen

Kapitel 2: OO Grundlagen Kapitel 2: OO Grundlagen 2.1 Objekte zum Leben erwecken (und Grundmechanismen verstehen) 2.2 Statische Elemente nutzen & vererben 2.3 Kooperation über Interfaces Lothar Schmitz UniBwM (teils nach Prof.

Mehr

Konzepte und Notation der Analyse gelten auch in Entwurf und Implementierung Erweiterung der Konzepte und Notation für den Entwurf

Konzepte und Notation der Analyse gelten auch in Entwurf und Implementierung Erweiterung der Konzepte und Notation für den Entwurf 1 Vorteil der Objektorientierung Konzepte und Notation der Analyse gelten auch in Entwurf und Implementierung Erweiterung der Konzepte und Notation für den Entwurf Ziel der Analyse OOA-Modell als fachliche

Mehr

Modellierungstipps für die Anwendungsfallmodellierung

Modellierungstipps für die Anwendungsfallmodellierung Modellierungstipps für die Anwendungsfallmodellierung Identifiziere nur relativ grobe Abläufe als Anwendungsfälle! Anwendungsfälle werden nicht in weitere Anwendungsfälle zerlegt, höchstens unter Verwendung

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

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 9. Schichtenarchtitektur: Teil 1 (Datenhaltung)

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

Abschnitt 15: Unified Modeling Language (UML)

Abschnitt 15: Unified Modeling Language (UML) Abschnitt 15: Unified Modeling Language (UML) 15. Unified Modeling Language (UML) 15.1 Grundlagen 15.2 Klassen und Objekte 15.3 Vererbung 15.4 Schnittstellen 15.5 Generische Typen 15.6 Pakete 15.7 UML

Mehr

Objektorientierte und Funktionale Programmierung

Objektorientierte und Funktionale Programmierung Objektorientierte und Funktionale Programmierung SS 2014 3 Objektorientierter Entwurf mit UML und Java Prüfungstermine OFP im Sommersemester 2014 Klausurtermine Montag, 04.08.14, 10-12 Uhr, Audimax oder

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

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

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

Praxis der Programmierung

Praxis der Programmierung Klassenvariablen und -methoden, Vererbung Institut für Informatik und Computational Science Henning Bordihn 1 Klassenvariablen und -methoden 2 Klassenvariablen und -methoden werden mit dem Schlüsselwort

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

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 5 12.04.2017 Was bisher geschah... Objektorientierte Programmierung Klassen und Objekte, Attribute

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

Abhängigkeiten und Assoziationen

Abhängigkeiten und Assoziationen Abhängigkeiten und Assoziationen Arbeitsmaterial www.informatikzentrale.de Abhängigkeiten und Assoziationen Wirtschaftsinformatik Klasse 13, September 2018 Auf manche Übungen folgen Lösungsvorschläge deshalb

Mehr

Java: Implemen'erung von Assozia'onen.

Java: Implemen'erung von Assozia'onen. Java: Implemen'erung von Assozia'onen Beispielsoftware: "Schulverwaltung" Wie könnten Sie hier Vererbung sinnvoll einsetzen? Beispielsoftware: "Schulverwaltung" Attribut name:string in Oberklasse auslagern.

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

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

Universität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 16. Juli Klausur

Universität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 16. Juli Klausur Universität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 16. Juli 2001 Stefan Holland Informatik II Hinweise: Klausur Verwenden Sie für Ihre Lösungen ausschließlich den

Mehr

Teil II: OOP und JAVA (Vorlesung 9)

Teil II: OOP und JAVA (Vorlesung 9) Teil II: OOP und JAVA (Vorlesung 9) Modul: Programmierung B-PRG Grundlagen der Programmierung II Prof. Dot.-Ing. Roberto Zicari Professur für Datenbanken und Informationssysteme (FB 12) 14.06.06 1 Teil

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

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

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

8 Baum in perfekter Komposition

8 Baum in perfekter Komposition 8 Baum in perfekter Komposition Die Implementierung des Binärbaums im letzten Kapitel wird mithilfe des Entwurfsmusters Kompositum optimiert. Knoten und Abschluss Bei der einfach verketteten Liste wurde

Mehr

Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit

Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit Aufgabe : Die allgemeine Object-Liste Gegeben sei folgendes UML-Klassendiagramm: MyObjectList

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

Vorlesung Programmieren. Bisher: Klassen und Objekte. Was ist mit ähnlichen Klassen? Vererbung und Polymorphismus

Vorlesung Programmieren. Bisher: Klassen und Objekte. Was ist mit ähnlichen Klassen? Vererbung und Polymorphismus Vorlesung Programmieren Vererbung und Polymorphismus Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Bisher: Klassen und Objekte Haupteigenschaften:

Mehr

IT kompakt. UML 2 kompakt. mit Checklisten. Bearbeitet von Heide Balzert

IT kompakt. UML 2 kompakt. mit Checklisten. Bearbeitet von Heide Balzert IT kompakt UML 2 kompakt mit Checklisten Bearbeitet von Heide Balzert 1. Auflage 2010. Taschenbuch. viii, 92 S. Paperback ISBN 978 3 8274 2506 5 Format (B x L): 12,7 x 19 cm Gewicht: 113 g Weitere Fachgebiete

Mehr

Java. Prof. Dr. Stefan Enderle NTA Isny

Java. Prof. Dr. Stefan Enderle NTA Isny Java Prof. Dr. Stefan Enderle NTA Isny 6. Klassen (Einführung, UML) Nachtrag Objekte In einem Software-System können, je nach Anwendung, viele "Objekte" vorkommen. Beispiele: Beteiligte oder betroffene

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

Objektorientierte und Funktionale Programmierung

Objektorientierte und Funktionale Programmierung Objektorientierte und Funktionale Programmierung SS 2013 3 Objektorientierter Entwurf mit UML und Java Wissensbassierte Systeme / Wissensmanagement Objektorientierte und Funktionale Programmierung Prüfungstermine

Mehr

Einführung in die Informatik II

Einführung in die Informatik II Einführung in die Informatik II SS 2011 3 Objektorientierter Entwurf mit UML und Java Wissensbassierte Systeme / Wissensmanagement Einführung in die Informatik II 1 Prüfungstermine EI II im Sommersemester

Mehr

Objektorientierte und Funktionale Programmierung

Objektorientierte und Funktionale Programmierung Objektorientierte und Funktionale Programmierung SS 2013 3 Objektorientierter Entwurf mit UML und Java Wissensbassierte Systeme / Wissensmanagement Objektorientierteund FunktionaleProgrammierung PrüfungstermineOFP

Mehr

Programmieren 2 C++ Überblick

Programmieren 2 C++ Überblick Programmieren 2 C++ Überblick 1. Einführung und Überblick 2. Klassen und Objekte: Datenkapselung 3. Erzeugung und Vernichtung von Objekten 4. Ad-hoc Polymorphismus 5. Behälter und Iteratoren 6. Templates

Mehr

UML (Unified Modelling Language) von Christian Bartl

UML (Unified Modelling Language) von Christian Bartl UML (Unified Modelling Language) von Inhaltsverzeichnis Inhaltsverzeichnis... 2 1 UML Unified Modelling Language... 3 2 Diagrammtypen... 3 2.1 Aktivitätsdiagramm... 3 2.1.1 Notation... 4 2.1.2 Beispieldiagramm...

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Bernhard Lahres, Gregor Rayman Objektorientierte Programmierung Das umfassende Handbuch Galileo Press 1.1 Was ist Objektorientierung? 13 1.2 Hallo liebe Zielgruppe 14 1.3 Was bietet dieses Buch (und was

Mehr

Die Unified Modeling Language (UML)

Die Unified Modeling Language (UML) Die Unified Modeling Language (UML) Entwickelt seit Mitte der 1990er Vereinigt zahlreiche Ansätze der objektorientierten Modellierung Umfaßt verschiedene Spracheinheiten/Diagrammtypen Struktur Klassiagramme

Mehr