Fachkonzept - Methoden
Methoden
Mithilfe von Methoden kann sich einerseits der Zustand eines Objektes verändern, andererseits ist es mit Methodenaufrufen möglich, Informationen über den aktuellen Zustand des Objektes zu erhalten. So kann zum Beispiel die Motor-Geschwindigkeit mit dem Aufruf der Methode setSpeed(200) verändert werden oder man lässt den Roboter mithilfe einer Methode fahreVorwaerts() einfach losfahren. Methoden wie getDistance() können uns Informationen liefern, wie weit der Roboter von einem Hindernis entfernt ist.
Semantik und Implementierung
Beim Aufruf einer Methode ist es wichtig, die Semantik (Bedeutung) der Methode zu kennen, d. h. etwa zu wissen, welche Veränderungen vorgenommen werden und was die Bedeutung der Rückgabewerte ist. Allerdings benötigt man nicht unbedingt Wissen darüber, wie die Funktionalität implementiert ist.
Prozeduren und Funktionen
Methoden bezeichnet man als Funktionen, wenn sie einen Rückgabewert (auch Ausgabe-Parameter) haben. Der Datentyp des Rückgabewertes ist bei der Deklaration festzulegen. Funktionen enden stets mit einer return-Anweisung, die den ermittelten Funktionswert benennt.
Methoden ohne Rückgabewert nennt man Prozeduren. In Java gibt man dann als "Pseudo-Datentyp" das Schlüsselwort void an.
Beispiel:
public class NXTRegulatedMotor ...
{
...
/* This method returns true if the motor is attempting to rotate. ... */
public boolean isMoving()
{
return reg.moving;
}
...
/* Causes motor to stop, ... */
public void stop()
{
reg.newMove(0, acceleration, NO_LIMIT, true, true);
}
...
}
Parameter
Methoden können in Abhängigkeit von (Eingabe-)Parametern ausgeführt werden. Dazu muss festgelegt werden, wie viele Parameter man übergeben muss, welchen Datentyp sie haben und in welcher Reihenfolge man sie angeben muss.
Beispiel:
public class NXTRegulatedMotor ...
{
...
/* Rotate by the request number of degrees.
* @param angle number of degrees to rotate relative to the current position
* @param immediateReturn if true do not wait for the move to complete
*/
public void rotate(int angle, boolean immediateReturn) {
...
}
...
}