Java: Implemen'erung von Assozia'onen.

Ähnliche Dokumente
Java: Vererbung. Teil 3: super()

Informatik II Übung 6 Gruppe 7

Software Engineering Klassendiagramme Einführung

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny

Java. Prof. Dr. Stefan Enderle NTA Isny

Objektorientierte Systementwicklung Assoziationen

Einführung in die Programmierung mit Java. Hörsaalübung

Javakurs für Anfänger

Theorie zu Übung 8 Implementierung in Java

Software Engineering Klassendiagramme weiterführende Konzepte

Probeklausur Softwareengineering SS 15

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Code-Erzeugung aus UML-Klassendiagrammen

Javakurs für Anfänger

Java: Vererbung. Teil 1: Grundlagen, UML.

8 Baum in perfekter Komposition

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik

Bedienung von BlueJ. Klassenanzeige

Informatik I Eprog HS10

Software Engineering Interaktionsdiagramme

Beziehungen zwischen Objekten

Von der UML nach C++

Probeklausur: Programmierung WS04/05

Software Engineering Klassendiagramme Assoziationen

Inhalt: Version 1.7.5

Assoziation und Aggregation

Java Vererbung. Inhalt

8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure

Repetitorium Informatik (Java)

Einführung in die Programmierung mit Java

Faustregeln zu Zusicherungen

Klassendiagramme in UML.

Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML)

Vorlesung Programmieren

Was ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit

Javakurs für Anfänger

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

Lösungsvorschlag für Übungsblatt 4 Software Engineering 1 (WS 2012/13)

Rhapsody in J Modellierung von Echtzeitsystemen


Programmierkurs Java. Vererbung. Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck

Aufgabe 1: Quer durch Java (4 Punkte) super abstract abstract protected

[Beziehungen, Ereignisse und Aktionen: Benutzer hinzufügen und anmelden] Schritt 1: Java-Editor öffnen

WhiteStarUML Tutorial

Javakurs für Anfänger

AuD-Tafelübung T-B5b

Unified Modeling Language (UML)

3. Konzepte der objektorientierten Programmierung

Übungen zur Softwaretechnik

Software Engineering II

7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen

Nachklausur Programmieren / Algorithmen und Datenstrukturen 1

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9

Kurzeinführung in UML

Selbstbestimmtes Lernen. Proinformatik III Objektorientierte Programmierung. Format. Inhalt. Buzzwords

Übung Datenstrukturen. Objektorientierung in C++

Einführung in die Programmierung 1

Muster in der Software Technik. Grundlegende Konzepte der Software Entwicklung und Objekt Orientierung

Java lernen mit BlueJ

Einführung in die Programmierung für NF

4. Übung zu Software Engineering

Selbststudium OOP4 Auftrag

Softwaretechnik (WS 11/12)

4. Übung zu Software Engineering

Darstellung von Assoziationen

Wolmerin; Java lernen y. mit Eclipse 3. Galileo Computing

Vorlesung "Software-Engineering"

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

Inhaltsverzeichnis. 2.2 Grundlagen der UML Zusammenfassung... 53

Kapitel Abbildung von UML-Modellen auf Code

Computeranwendung und Programmierung (CuP)

Software Engineering. 6. Klassendiagramme. Franz-Josef Elmer, Universität Basel, HS 2012

3 Objektorientierte Konzepte in Java

Übung 4. Musterlösungen

Interaktionsdiagramme in UML

3 Objektorientierte Konzepte in Java

Alltagsnotizen eines Softwareentwicklers

Projekt AGB-10 Fremdprojektanalyse

U08 Entwurfsmuster (II)

Programmieren mit Java

Java, OO und UML Fortsetzung

UML Eine kurze Einführung

Klausur vom 14. Juni Informatik 4

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

4 Vererbung, Polymorphie

Software Engineering in der Projektpraxis

Anleitung zur Installation und Verwendung von eclipseuml 2.1.0

Software Engineering. 6. Objektorientierter Entwurf

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

Programmierkurs C++ Abstrakte Klassen und Methoden

Grundzüge der Programmierung. Wiederverwendung VERERBUNG

3 Java und Eclipse kennenlernen

Transkript:

Java: Implemen'erung von Assozia'onen

Beispielsoftware: "Schulverwaltung" Wie könnten Sie hier Vererbung sinnvoll einsetzen?

Beispielsoftware: "Schulverwaltung" Attribut name:string in Oberklasse auslagern. (Aber: Das tun wir jetzt nicht, um möglichst einfach zu bleiben)

0...1 - Beziehung Wie legen Sie im Code fest, dass jeder Lehrer eine Sekretärin hat (oder keine)?

0...1 - Beziehung Wie legen Sie im Code fest, dass jeder Lehrer eine Sekretärin hat (oder keine)? Lösung: Ein Objekt der verbundenen Klasse als Attribut deklarieren. // Klasse Lehrer private Sekretaerin sekretaerin;

1 - Beziehung Wie legen Sie im Code fest, dass jeder Direktor genau eine Sekretärin hat?

1 - Beziehung Wie legen Sie im Code fest, dass jeder Direktor genau eine Sekretärin hat? Lösung: Ein Objekt der verbundenen Klasse als Attribut deklarieren und dieses Attribut via parametrisiertem Konstruktor initialisieren. // Klasse Direktor private Sekretaerin sekretaerin; public Direktor(Sekretaerin s) { this.sekretaerin = s; }

* - Beziehung Wie legen Sie im Code fest, dass jeder Sozialarbeiter keinen, einen oder mehrere Schueler betreut ("kennt")?

* - Beziehung Wie legen Sie im Code fest, dass jeder Sozialarbeiter keinen, einen oder mehrere Schueler betreut ("kennt")? Lösung: ArrayList mit Objekten der verbundenen Klasse anlegen. // Klasse Sozialarbeiter private ArrayList<Schueler> schuelerliste = new ArrayList<Schueler>();

1...* - Beziehung Wie legen Sie im Code fest, dass jeder Lehrer mindestens einen Schueler hat?

1...* - Beziehung Wie legen Sie im Code fest, dass jeder Lehrer mindestens einen Schueler hat? Lösung: ArrayList mit Objekten der verbundenen Klasse anlegen; Liste im Konstruktor übergeben. // Klasse Lehrer private ArrayList<Schueler> schuelerliste; public Lehrer(ArrayList<Schueler> sliste){ this.schuelerliste = sliste; }

Nicht navigierbar Wie legen Sie im Code fest, dass der Angestellte die Abteilung nicht kennt?

Nicht navigierbar Wie legen Sie im Code fest, dass der Angestellte die Abteilung nicht kennt? Lösung: Sie tun einfach nichts. Wenn Angestellter keine Referenz auf Abteilung enthält, gibt es in diese Richtung keine Sichtbarkeit.

Diverses zur Implementierung 1) Bei bidirektionalen Beziehungen muss berücksichtigt werden, dass bei Änderungs- und Löschvorgängen auch in der assoziierten Klasse entsprechend geändert wird. 2) Änderungs- und Löschoperationen werden i.d.r. durch eigene Methoden vorgenommen. 3) euml2 erzeugt Ihnen Javacode passend zum UML-Diagramm (Forward-Engineering, vgl. MySQL-Workbench). In der Regel ist der Code brauchbar oder kann zumindest als Grundlage dienen.

Assoziationen Übung: Anwendung Aufgabe 1: Die Assoziationsattribute sind noch nicht festgehalten. Ergänzen Sie das Klassendiagramm entsprechend (auch Parameter in den Konstruktoren bei Bedarf!).

Lösung: Assoziationen Übung: Anwendung - Direktor hat Liste mit Kundenberatern; da Liste leer sein darf (KANN-Beziehung), wird sie nicht im Konstruktor übergeben. - Kundenberater hat Liste von Kunden; da MUSS-Beziehung, wird sie im Konstruktor übergeben. - Kunde hat einen Kundenberater (Attribut meinkundenberater). Da MUSS-Beziehung, wird der Kundenberater im Konstruktor übergeben.

Assoziationen Übung: Anwendung Aufgabe 2: Programmieren Sie die Klassen und testen Sie in der Startklasse ausgiebig alle Methoden, Attribute etc.

Assoziationen Änderungsmethoden: unidirektional Setzen Sie dieses Klassendiagramm programmiertechnisch um. (Natürlich hat jede Klasse zwei sinnvolle Attribute, z.b. "name" o.ä.) Schreiben Sie außerdem in der Klasse Abteilung Methoden, um neue Angestellte hinzuzufügen oder zu löschen.

Assoziationen Änderungsmethoden: bidirektional Setzen Sie dieses Klassendiagramm programmiertechnisch um. (Natürlich hat jede Klasse zwei sinnvolle Attribute, z.b. "name" o.ä.) Schreiben Sie außerdem in der Klasse Abteilung Methoden, um neue Angestellte hinzuzufügen oder zu löschen. Verwenden Sie eclipse!