2.2 Methoden eines Objekts aufrufen

Die Methoden eines Objekts können von ihm selbst und auch von anderen Objekten aufgerufen werden. Im zweiten Fall schickt ein Objekt (Absender) dem Objekt, dessen Methode ausgeführt werden soll (Empfänger), eine entsprechende Nachricht (Methodenaufruf).

JAVA

robi.starteAufFeld(1, 2, ausgewaehltesSpielbrett);

Abb. 2-7: Ein Objekt namens robi soll seine starteAufFeld-Methode ausführen. Als Argumente werden die Ganzzahlen 1 und 2 sowie der Referenz ausgewaehltesSpielbrett übergeben. Letztere verweist auf ein Objekt der Klasse Spielbrett, auf dem robi eingesetzt werden soll.

Soll eine Methode eines anderen Objekts ausgeführt werden, muss zunächst der Name des Objekts genannt werden und anschließend, durch einen Punkt getrennt, der Name der Methode. Erwartet die Methode die Übergabe von Argumenten, sind entsprechende Werte innerhalb der runden Klammern anzugeben.

Ruft ein Objekt eine eigene Methode auf, kann der Objektname entweder wegfallen oder durch die Referenz this ersetzt werden. this ist ein Platzhalter, der immer auf das Objekt verweist, das die entsprechende Anweisung gibt.

JAVA

//Aufruf einer Methode eines anderen Objekts

objektname.methodenname([argument[,...]]);


//Aufruf einer eigenen Methode

methodenname([argument[,...]]);

this.methodenname([argument[,...]]);

Merke: Aufruf einer Methode
Spielbrett1
Abb. 2-8: Spielbrett
Aufgabe

Aufgabe 2-1: Szenario – „Erste Schritte“ (Fortsetzung)

Ergänzen Sie im Eclipse-Projekt JavaRobot den Quellcode der der Klasse SzenarioAufgabe2_1 so, dass die folgenden Vorgaben erfüllt werden:

  1. robi soll auf dem Feld mit den Koordinaten (2, 1) auf dem Spielbrett, das der erstelleRobi-Methode als Argument übergeben wird, starten. Lösung
  2. robi soll, ausgehend von seiner Startposition, zum Zielfeld gesteuert werden. Lösung
JAVA
public class SzenarioAufgabe2_1 implements Szenario {

    private String name = "Aufgabe 2-1: Szenario – „Erste Schritte“";
    private Roboter robi;

    @Override
    public void erstelleRobi(Spielbrett ausgewaehltesSpielbrett) {
        robi = new Roboter();
        robi.starteAufFeld(1, 2, ausgewaehltesSpielbrett);
    }
    
    @Override
    public void steuereRobi() {
        robi.gehVorwaerts();
        robi.drehRechts();
        robi.gehVorwaerts();
        robi.drehLinks();
        robi.gehVorwaerts();
    }

    @Override
    public String getName() {
        return name;
    }
    
Abb. 2-9: Quellcode der Klasse Szenario
Die Klasse Roboter (UML)
Abb. 2-10: Die Klasse Roboter (UML)