Klassen und ihre Beziehungen I: Assoziation und Aggregation

Ähnliche Dokumente
Assoziation und Aggregation

Assoziation und Aggregation

Beziehungen zwischen Klassen

Klassen und ihre Beziehungen II: Einfache Vererbung und Abhängigkeit

Vererbung. Martin Wirsing. Ziele. Vererbung

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

Vererbung. Prof. Dr. Christian Böhm. in Zusammenarbeit mit Gefei Zhang. WS 07/08

UML -Klassendiagramme

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

Von der UML nach C++

Nebenläufige Programmierung I

Programmieren 2 C++ Überblick

7. Objektorientierung. Informatik II für Verkehrsingenieure

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

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

Softwaretechnik WS 16/17. Übungsblatt 01

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

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

Programmieren in Java

14. Java Objektorientierung

Vorlesung Datenstrukturen

Programmierung Nachklausurtutorium

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

Algorithmen und Datenstrukturen 06

Einführung in die Programmierung mit Java

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

12.1 Das Schlüsselwort super

Unified Modelling Language

Beobachtung Oft werden mehrere Klassen von Objekten benötigt, die zwar ähnlich, aber doch verschieden sind. Säugetiere

Beobachtung Oft werden mehrere Klassen von Objekten benötigt, die zwar ähnlich, aber doch verschieden sind. Säugetiere

1 4. Datenmodellierung mit der Unified Modeling Language (UML)

Assoziationen in Java

Programmieren in Java

Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)

Sommersemester Implementierung I: Struktur

14. Java Objektorientierung

Software Engineering Klassendiagramme weiterführende Konzepte

14. Java Objektorientierung. Klassen, Vererbung, Kapselung

Klassen können bekanntlich aus zwei Komponententypen bestehen, nämlich Attributen und Methoden.

12 Vererbung. Beobachtung Oft werden mehrere Klassen von Objekten benötigt, die zwar ähnlich, aber doch verschieden sind.

Software Entwicklung 1. Fallstudie: Arithmetische Ausdrücke. Rekursive Klassen. Überblick. Annette Bieniusa / Arnd Poetzsch-Heffter

12 Vererbung. 12 Vererbung. 12 Vererbung. 12 Vererbung

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

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

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2018/19. Vorbereitende Aufgaben

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

VU Objektorientierte Modellierung Übung 2

Software Entwicklung 1

Überblick. Überblick zum weiteren Inhalt

Objektorientierte Programmierung mit C++ SS 2007

Tafelübung 07 Algorithmen und Datenstrukturen

Beobachtung Oft werden mehrere Klassen von Objekten benötigt, die zwar ähnlich, aber doch verschieden sind. Säugetiere

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

3. Objektorientierte Analyse

Einführung in die Programmierung

Test-Driven Design: Ein einfaches Beispiel

Javakurs für Anfänger

12 Vererbung. Beobachtung Oft werden mehrere Klassen von Objekten benötigt, die zwar ähnlich, aber doch verschieden sind.

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

Javakurs für Anfänger

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18. Vorbereitende Aufgaben

Einführung in die OOP mit Java

Tag 8 Repetitorium Informatik (Java)

Beziehungen zwischen Objekten

Einführung in die Programmierung mit Java

Übungen Softwaretechnik I

8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure

Th. Letschert OOP 2 2. Geheimnisprinzip und Sichtbarkeitsbeziehungen

Programmierkurs Java

Programmierkurs C++ Abstrakte Klassen und Methoden

Schwerpunkte. 10. Felder (Arrays) Grundprinzip von Arrays. Klassifikation von Typen in Programmiersprachen

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

Einstieg in die Informatik mit Java

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

Universität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 08. Oktober Klausur II

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

Java Einführung Vererbung und Polymorphie. Kapitel 13

Programmieren in Java -Eingangstest-

Einstieg in die Informatik mit Java

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

Rückblick: Entity-Relationship-Modell

Themen. Unified Modelling Language (UML) Assoziation. Aggregation. Komposition

Java für Bauingenieure

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

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

Einstieg in die Informatik mit Java

Einführung in die Programmiersprache Java II

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Objektorientierung. Marc Satkowski 20. November C# Kurs

Grundlagen Polymorphismus Eigenschaften virtueller Klassen Mehrfachvererbung bei ROOT. Mehrfache Vererbung. Daniel Beneckenstein. 21.

1 Klassen und Objekte

Theorie zu Übung 8 Implementierung in Java

Fakultät IV Elektrotechnik/Informatik

FACHHOCHSCHULE MANNHEIM

Einführung in die Systemprogrammierung

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

Informatik II Übung 06. Benjamin Hepp 5 April 2017

Transkript:

Klassen und ihre Beziehungen I: Ziele Verstehen der Begriffe Assoziation, Aggregation und Komposition 2 Martin Wirsing in Zusammenarbeit mit Matthias Hölzl, Piotr Kosiuczenko, irk Pattinson

3 4 Assoziation Assoziation ist eine Beziehung zwischen zwei oder mehr Klassen Assoziation: ie Klassen und stehen in Beziehung Aggregation: Jedes Objekt von enthält Objekte von Vererbung: ie Klasse ist Erbe der Klasse ie Assoziation ist die allgemeinste Art einer Beziehung name mult role as iagramm drückt aus, daß jedes Objekt o von mit mult -vielen Objekten von im Beziehung steht, die die Rolle role für o spielen. abei ist role ein Name und mult entweder eine natürliche Zahl, ein Stern * für beliebig viele Objekte oder ein Intervall der Form a..b mit a N, b N * Abhängigkeit: ie Klasse benützt Elemente der Klasse (i.a. Methoden) er Name name gibt den Namen der Assoziation an as ausgefüllte reieck bezeichnet die Leserichtung.

5 6 Beispiele: Beispiele:. Professor Assoziation liest 0..* Vorlesung 3. starke Aggregation (Komposition) 2. Hypertext-Buch Titel Erscheinungsjahr * schwache Aggregation Kapitel * Autor chapter Anzahl Seiten Jedes Hypertext-Buch ist gekennzeichnet durch seine Kapitel, d.h. Kapitel spielt die Rolle chapter für Hypertext-Buch. ustomer owner 0..* account BankAccount Jeder Bankkunde besitzt 0 oder mehrere Konten, die die Rolle account spielen. Jedes Bankkonto hat genau einen Besitzer ( owner ).

7 8 Schwache Aggregation Starke Aggregation Beispiel: Ganzes 0.. besteht aus * Teil Unternehmen besteht aus..* besteht aus..* Abteilung Mitarbeiter Schwache Aggregation ist eine Teile-Ganzes Relation, die Lebensdauer der Teile hängt aber nicht von der Lebensdauer des Ganzen ab. Es gilt aber, dass die Objekte der schwachen Aggregation einen gerichteten azyklischen Graphen bilden. (Wenn B Teil von A, dann ist A nicht Teil von B). ie Teile existieren nur innerhalb des Aggregats Ganzes ; d.h. die Lebensdauer eines Teil -Objekts wird durch die Lebensdauer des zugehörigen Aggregats beschränkt. Objekte der Aggregation bilden einen Baum. (Wenn A ein Objekt B enthält, dann enthält BnichtA.) Jedes Objekt der Teilklasse kann - zu einem Zeitpunkt - nur Komponente eines einzigen Objekts der Aggregatklasse sein, d.h., die bei der Aggregatklasse angetragene Kardinalität darf nicht größer als eins sein (unshared aggregation, strong ownership). Ein Teil darf jedoch auch einem anderen Ganzen zugeordnet werden. ie dynamische Semantik des Ganzen gilt auch für seine Teile (propagation semantics). Wird beispielweise das Ganze kopiert, so werden auch seine Teile kopiert.

9 0 Starke Aggregation Java Implementierung von Assoziationen Beispiel: starke Aggregation (Komposition) In Java repräsentiert man Assoziationen durch Attribute Jede Rolle role vom Typ wird als Attribut von Implementiert Ist die Multiplizität 0, oder 0.. erhält man ein Attribut role Verzeichnis Name Erstellung atei Name Erstellung letzte Änderung letzter Zugriff Ist die Multiplizität > oder * verwendet man ein Feld oder einen Vektor von -Objekten (siehe später).

2 Implementierung von starker Aggregation Implementierung von starker Aggregation Erzeugung der Komponenten durch Konstruktor des Aggregats Beispiel Beispiel ircle double radius... class ircle private double radius; private Point center; center Point ustomer name getbalance () deposit (x) withdraw (x) account BankAccount public ircle(double rad, double x, double y) radius = rad; center = new Point(x,y);...

3 4 Implementierung von starker Aggregation class ustomer private String name; private BankAccount account; Zusammenfassung public ustomer(string cname, double initialbalance) name = cname; account = new BankAccount(initialBalance); public String getname() return name; public double getbalance() return account.getbalance(); public void transferto(bankaccount other, double amount) account.transferto(other, amount); public void withdraw(double x) account.withdraw(x); public void deposit(double x) account.deposit(x); Eine Assoziation ist eine Relation (Beziehung) zwischen Klassen. Eine Aggregation ist eine Teile-Ganzes-Beziehung und damit eine spezielle Assoziation. Bei einer starken Aggregation sind die Teile existenzabhängig vom Ganzen. Insbesondere kann jedes Teil nur zu einem Aggregat gehören.