1.5 Methoden
In der Regel besteht ein objektorientiertes Programm zur Laufzeit1 aus verschiedenen Objekten. Würden diese Objekte ausschließlich aus Attributen bestehen, könnten sie sich zwar Dinge merken, aber nichts tun. Ein solches Programm würde keinerlei Funktionalitäten bieten, die über das Speichern von Daten hinausgehen.
Damit ein Objekt in der Lage ist, bestimmte Aktionen auszuführen, muss es über entsprechende Methoden verfügen. Immer wenn das Programm etwas Bestimmtes tun soll, wird die entsprechende Methode des dafür zuständigen Objekts aufgerufen. Methoden sind damit für die Aktionen eines Programms zuständig.
Beispiel
Das UML-Klassendiagramm in Abbildung 1-10 zeigt drei Methoden der Klasse Roboter.
An den Namen einer Methode werden stets ein Paar runder Klammern angefügt.
Benötigt eine Methode zusätzliche Werte, damit sie ihre Aufgabe erfüllen kann, dann müssen beim Erstellen der Methode zwischen den beiden runden Klammern für jeden Wert ein Platzhalter (Parameter) und der jeweilige Datentyp notiert werden. Im Programmcode der Methode kann der Parameter dann als Platzhalter für die Werte verwendet werden, die zur Laufzeit des Programms beim Aufruf der Methode übergeben werden.
Mit Hilfe der Methode starteAufFeld(x: int, y: int, spielbrett: Spielbrett)
sollen einem Objekt der Klasse Roboter sein Spielbrett und die Koordinaten seines Startfeldes mitgeteilt werden. Beim Erstellen der Methode müssen zwischen den runden Klammen für jeden Wert ein Platzhalter (Parameter) und sein Datentyp angegeben werden:
Beim Aufruf der Methode müssen die Übergabewerte dann in dieser Reihenfolge angegeben werden.
Mit Hilfe der Methode istFarbeErlaubt(pFarbe: String): boolean
kann ein Roboter-Objekt gefragt werden, ob der übergebene String für eine Farbe steht, die dem Roboter zugewiesen werden darf. Die Methode gibt als Antwort einen Wert vom Typ boolean
zurück, das heißt, entweder den Wert true
oder den Wert false
.
Fragen 1-1: Methoden
In der Klasse Roboter gibt es die Methode sag(meldung: String). Wird ein Roboter-Objekt aufgefordert diese Methode auszuführen, gibt dieses den übergebenen String in einem Fenster aus.
-
Muss beim Aufruf der Methode ein Wert übergeben werden? Falls ja, welchen Datentyp muss dieser Wert besitzen?
Lösung
Antwort:Ja, der Wert muss vom Typ String sein. -
Gibt die Methode an den Aufrufer eine Antwort zurück? Falls ja, welchen Datentyp besitzt die Antwort?
Lösung
Antwort:Wenn eine Methode an den Aufrufer eine Antwort zurückgibt, dann wird im UML-Klassendiagramm im Anschluss an die schließende runde Klammer ein Doppelpunkt und der Datentyp der Antwort angehängt. Dies ist hier nicht der Fall. -
Wie lautet die Anweisung, mit deren Hilfe ein Roboter-Objekt mit dem Objektnamen max aufgefordert wird den Text „Ich bin bereit!” in einem Fenster auszugeben?
Lösung
Antwort:max.sag("Ich bin bereit!");