Index

5. Problemlösetechniken

Objektorientierte Programmierung (5)


Projekt: Tauglichkeitstester

3. Die Klasse Stoppuhr

Was sollte nun unsere Stoppuhr alles können?

Welche Daten muss die Uhr hierfür verwalten?

Den Zustand der Stoppuhr sollte man festhalten, da es nicht sinnvoll ist, eine laufende Stoppuhr neu zu starten, bzw. eine stehende Stoppuhr nochmals zu stoppen.

Eine Klasse wird in UML (Unified Modeling Language) durch ein dreigeteiltes Rechteck dargestellt. Im oberen Teil steht der Klassenname, dann folgen die Attribute, sodann die Methoden.
Hierbei legen wir die erforderlichen Daten als Attribute an, die Steuermöglichkeiten auf die die Stoppuhr reagieren kann, als Methoden.
Diese Darstellung lässt sich sehr einfach in die Syntax der OOP-Sprachen übertragen.

Das Klassendiagramm für die Klasse Stoppuhr kann damit folgendes Aussehen haben:

Stoppuhr
- Startzeit
- Endzeit
- Laufzeit
- Aktiv
+ starten()
+ stoppen()
+ getLaufzeit()
+ ruecksetzen()

Attribute und Methoden bilden eine Einheit. Für Attribute und Methoden wird festgelegt, wie man auf sie zugreifen kann. Ein Entwicklungsziel der OOP ist, auf Attribute nur über festgesetzte Schnittstellen zuzugreifen, um Nebeneffekte zu verhindern und innere Teile veränderbar zu machen, ohne die Außenwirkung zu beeinflussen. Dies wird realisiert durch geeignete Zugriffsmethoden. Die Attributwerte sollten nicht direkt manipuliert werden. Man bezeichnet dies als Geheimnisprinzip oder Kapselung.

Für den Zugriff auf Attribute und Methoden gibt es in UML verschiedene Symbole.
- Zugriff nur innerhalb der Klasse erlaubt (private)
# Zugriff bei abgeleiteten Klassen erlaubt (protected)
+ Zugriff von außen erlaubt (public)

Für Methoden die auf Attribute zugreifen hat sich folgende Syntax eingebürgert:
set<Attributname> für den schreibenden, also ändernden Zugriff,
get<Attributname> für den lesenden, also nicht ändernden Zugriff.
Fehlen entsprechende Methoden für die Attribute, so ist ein Zugriff nicht möglich, wenn die Attribute nicht öffentlich (public) sind, was in der Regel auch nicht gewünscht ist.

Die Klassen zur Darstellung und Lösung des fachlichen Problems werden als Fachklassen bezeichnet, das Modell als Fachkonzept. Es wird getrennt von der Benutzungsoberfläche (GUI, graphic user interface) und deren Klassen.
Die Klasse Stoppuhr enthält die Funktionalität und die Werte. Will man ein Objekt dieser Klasse benutzen, so kann man eine grafische Oberfläche zur Darstellung und Steuerung des Objektes verwenden. Diese Klasse kann als StoppuhrGUI bezeichnet werden.

In UML stellt sich die Situation folgendermaßen dar:
Die Klasse StoppuhrGUI arbeitet mit einer Instanz (einem Objekt) der Klasse Stoppuhr. Zwischen den Klassen besteht eine Beziehung oder Assoziation. Sie wird durch eine Verbindungslinie zwischen den Klassen symbolisiert. Die Kardinalitäten an den Enden der Assoziationslinie besagen, dass zu dieser GUI-Klasse eine Stoppuhr gehört.
 
GUI - Fachklasse

Um sich Klarheit über den Lebenszyklus zu machen, den ein Objekt durchläuft, verwendet man als grafische Darstellung ein Zustandsdiagramm. Dieses zeigt die verschiedenen Zustände an, die das Objekt durchläuft. Die Anmerkungen erläutern die einzelnen Phasen.

Zustandsdiagramm der Stoppuhr Das Objekt hat einen Namen, der mit einem Zeiger (NIL) verbunden ist.
Das Objekt erhält einen Speicherplatz zugewiesen (Zeiger ≠ NIL); Anfangswerte werden gesetzt.
Arbeiten bedeutet:
Methoden werden genutzt,
Attribute geändert.
 
 
Das Objekt wird gelöscht, der Speicherplatz wird freigegeben.

Zum Erzeugen eines Objektes wird eine spezielle Methode, der Konstruktor, benutzt. Das Löschen wird vom Sprachsystem übernommen oder durch eine spezielle Methode, einen Destruktor.

Übung:

Zeichne ein Zustandsdiagramm für das Objekt Stoppuhr. Dabei gibt es die Zustände

Gib auch die Ereignisse (Methoden) an, welche zu einer Zustandsänderung führen.

[Index] [Zurück/TT 2] [Fortsetzung/TT 4]


Autor: Jürgen Dehmer, A. Sessler, G. Liebrich
Letzte Änderung: