Vorlesung Informatik II
|
|
- Juliane Schuster
- vor 7 Jahren
- Abrufe
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 WS 02/03 Warum muss ein Objekt wissen, zu welcher Klasse es gehört? Damit die Klassenzugehörigkeit
MehrAufgabe 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
Mehr8. 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:
MehrVorlesung 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
MehrObjektorientierte 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
MehrBeispiel: 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
MehrEinfü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
MehrTheorie 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
MehrBegriffe 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.
MehrGeoinformation 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
MehrObjektorientierte Modellierung
Objektorientierte Modellierung KLASSENDIAGRAMM Klasse = Typebene zum Beschreiben mehrerer Objekte der selben Struktur Objekt = konkrete Ausprägung einer Klasse Instanz = Objekt Klassendiagramm = beschreibt
MehrSystemanalyse. - 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
MehrAlgorithmen 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
MehrEinfü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
MehrAnwendungsentwicklung 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,
MehrHSR 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
MehrVorlesung 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
MehrObjektorientierte 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
MehrTafelü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
MehrUML -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
MehrKapitel 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
MehrProgrammieren 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
MehrBetreutes 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:
MehrProgrammieren 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
MehrVon 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
MehrKlassendiagramm. 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
MehrFH 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
Mehr15 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
MehrHerzlich 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
MehrEinfü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
MehrNeben 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
MehrVererbung 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
MehrOOP 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
MehrUnified 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
MehrEinfü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
MehrProgrammierkurs 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
MehrVererbung. 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
MehrEinfü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
MehrProgrammierkurs 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
MehrEinstieg 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
MehrIT 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
MehrKurzeinfü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
MehrInformatik 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,
MehrSoftware 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
MehrInstitut 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
MehrInformatik 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
MehrAssoziationen 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
MehrInstanz 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.
MehrVorlesung 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
MehrVererbung 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
MehrVorlesung 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
MehrEinfü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
MehrTU 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)
MehrEinfü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
MehrAlgorithmen 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 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
MehrObjektorientierte 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
MehrEinstieg 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
MehrVererbung, 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
MehrKapitel 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.
MehrKonzepte 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
MehrModellierungstipps 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
MehrInstitut 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
MehrVorlesung 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)
MehrJavakurs 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
MehrAbschnitt 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
MehrObjektorientierte 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
MehrProgrammierparadigmen
Programmierparadigmen DEKLARATIV Funktional Logisch IMPERATIV Prozedural Objektorientiert Einsatz der Programmierparadigmen Systemkomplexität von der Komplexität der Algorithmen dominiert deklarativ oder
Mehr1. 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
Mehr7. 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
MehrPraxis 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
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
MehrObjektorientierte 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
Mehr7. 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
MehrWeitere 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
MehrAbhä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
MehrJava: 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.
MehrKlassen 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
MehrVererbung. 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
MehrUniversitä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
MehrTeil 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
Mehr3 Objektorientierte Konzepte in Java
3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine
MehrInhaltsü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)
Mehr14. Java Objektorientierung
Objektorientierung: Verschiedene Aspekte Daten Typhierarchie Objekte 14. Java Objektorientierung Code Vererbung Unter- und Oberklassen Klassen, Vererbung, Kapselung Methoden überschreiben Unterklassen
Mehr14. Java Objektorientierung
Objektorientierung: Verschiedene Aspekte Daten Typhierarchie Objekte 14. Java Objektorientierung Code Vererbung Unter- und Oberklassen Klassen, Vererbung, Kapselung Methoden überschreiben Unterklassen
Mehr8 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 Aufgabe : Die allgemeine Object-Liste Gegeben sei folgendes UML-Klassendiagramm: MyObjectList
MehrGrundzü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
MehrVorlesung 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:
MehrIT 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
MehrJava. 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
MehrWiederholung. 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
MehrObjektorientierte 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
MehrEinfü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
MehrObjektorientierte und Funktionale Programmierung
Objektorientierte und Funktionale Programmierung SS 2013 3 Objektorientierter Entwurf mit UML und Java Wissensbassierte Systeme / Wissensmanagement Objektorientierteund FunktionaleProgrammierung PrüfungstermineOFP
MehrProgrammieren 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
MehrUML (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...
MehrObjektorientierte 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
MehrDie 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