Lernziele
Wenn Sie diese Seite durchgearbeitet haben, sollten Sie wissen
- was man unter einer HAT-Beziehung zwischen zwei Klassen versteht,
- was ein Klassendiagramm ist und
- welche Informationen ein Klassendiagramm enthält und welche nicht.
HAT-Beziehungen
Wir schauen uns den Anfang des Quelltexts der Klasse Zeichnung noch einmal genau an:
public class Zeichnung
{
Circle sonne, mond;
public Zeichnung()
{
sonne = new Circle();
mond = new Circle();
// ...
Die Klasse Zeichnung besitzt zwei Instanzvariablen sonne und mond vom Typ Circle. Man kann daher sagen: Eine Zeichnung hat eine Sonne und einen Mond.
Eine solche Beziehung zwischen zwei Klassen (hier Zeichnung und Circle) nennt man eine HAT-Beziehung. Hier ein paar weitere Beispiele für mögliche HAT-Beziehungen:
- Ein Auto HAT vier Räder.
- Ein Haus hat mehrere Fenster.
- Eine Mannschaft hat mehrere Spieler.
- Eine Bibliothek hat viele Bücher.
Auch unsere Zeichung besteht aus mehreren Objekten anderer Klassen:
- Die Zeichnung hat zwei Kreise, ein Quadrat und ein Dreieck.
Merke:
HAT-Beziehung
Besitzt eine Klasse Objekte einer anderen Klasse als Instanzvariablen, spricht man von einer HAT-Beziehung.
Aufgabe 1
Bearbeiten Sie die Klasse Zeichnung nun so, dass ähnlich wie in der Folge 1 ein Bild gezeichnet wird: Ein Haus mit einem roten Dach, am Himmel ein kleiner blauer Mond und eine große gelbe Sonne,
Klassendiagramme
Eine große Stärke von BlueJ besteht darin, dass zu jedem Projekt automatisch ein Klassendiagramm angezeigt wird. Dadurch erhält man schnell einen Überblick über die Struktur des gesamten Projekts.
Für unser Projekt Zeichnung sieht das Klassendiagramm beispielsweise so aus:
Klassendiagramm des Projekts
Jeder Kasten des Diagramms steht für eine Java-Klasse. Die Verbindungslinien zwischen den Kästen zeigen, dass die Klassen miteinander in Beziehung stehen.
Im Quelltext der Klasse Zeichnung haben wir die beiden Instanzvariablen
Circle sonne, mond;
deklariert. Dadurch erkennt BlueJ, dass die Klasse Zeichnung mit der Klasse Circle verbunden ist. Entsprechendes gilt später auch für die Klassen Square und Triangle, aus deren Objekten wir unser Haus zusammengesetzt haben.
Das Klassendiagramm zeigt also nicht die einzelnen Objekte sonne oder mond, sondern nur, welche Klassen in einem Projekt vorkommen und wie sie miteinander zusammenhängen.
HAT-Beziehungen werden in BlueJ durch gestrichelte Linien dargestellt, deren Pfeilspitzen auf die untergeordneten Klassen zeigen. Objekte der Klasse Zeichnung haben also Objekte der Klassen Triangle, Square und Circle.
Merke:
Klassendiagramm
Ein Klassendiagramm stellt die Klassen eines Projekts und ihre Beziehungen dar. Die einzelnen Objekte werden darin nicht dargestellt.
Aufgabe 2
Ein Auto besteht aus vielen verschiedenen Bestandteilen. Für diese Aufgabe betrachten wir jedoch nur die folgenden Klassen: Auto, Motor, Lenkrad und Rad.
Zeichnen Sie ein Klassendiagramm mit den entsprechenden Verbindungslinien zwischen den Klassen.
Für Lehrende
In diesem Kurs werden Beziehungen zwischen Klassen zunächst ausschließlich als HAT-Beziehungen eingeführt. Auf die in der Softwaretechnik übliche Unterscheidung zwischen Assoziation, Aggregation und Komposition wird bewusst verzichtet.
Diese Vereinfachung hat didaktische Gründe. Schüler(innen) der EF sollen zunächst erkennen, dass eine Klasse Objekte anderer Klassen besitzen kann und dadurch größere Programme aus mehreren zusammenarbeitenden Klassen entstehen ("komponiert" werden → Komposition).
Korrekte UML-Diagramme werden hier noch nicht eingeführt, Klassendiagramme werden auf der Ebene von BlueJ besprochen. In der Qualifikationsphase sollten jedoch richtige UML-Klassendiagramme eingeführt werden, weil viele Aufgaben des Zentralabiturs oft mit der Präsentation eines solchen Diagramms beginnen.
Persönliche Bemerkung
In meinem eigenen Unterricht hat es sich immer bewährt, zunächst mit einfachen Aussagen wie "Ein Auto HAT vier Räder", "Eine Zeichnung HAT eine Sonne" oder "Eine Bibliothek HAT viele Bücher" zu arbeiten. In den besonders engagierten Kursen habe ich dann auch noch kurz über verschiedene Formen der HAT-Beziehungen gesprochen; Komposition und Aggregation. Das war aber nicht oft der Fall.