zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Was ist falsch an dem folgendem Codesegment?

Point meinPoint = new Point();  // einen Punkt bei x=0, y=0 konstruieren
meinPoint.move();               // den Punkt auf eine neue Position verschieben

Antwort:

Die zweite Anweisung ruft die Methode move() von meinPoint auf, aber sie stellt keine Daten bereit, wohin der Punkt zu verschieben ist.

Ausdrücke in Parameterlisten

In diesem Fall ist die Angabe, welche Methode auszuführen ist, nicht genug. Die Methode braucht Daten darüber, was zu tun ist. Wenn wir uns die Beschreibung der Klasse Point ansehen, wird die move() Methode folgendermaßen beschrieben:

// (x,y) eines point-Objekts ändern
public void move(int x, int y)

Die Beschreibung besagt, dass die Methode zwei Parameter benötigt:

  1. Der erste Parameter muss vom Typ int sein. Er wird der neue Wert für x sein.
  2. Der zweite Parameter muss vom Typ int sein. Er wird der neue Wert für y sein.

Die Punktnotation wird verwendet, um anzugeben welches Objekt und welche Methode dieses Objekts auszuführen ist. Die Parameterliste der Methode versorgt die Methode mit Daten. Hier sind einige Beispiele:

Point pointA = new Point();
Point pointB = new Point( 94, 172 );

pointA.move( 45, 82 );

pointB.move( 24-12, 34*3 - 45 );

int x = 87;
int y = 55;
pointA.move( x, y );

pointB.move( x - 4, y * 2 + 34 );

Wir können Ausdrücke in Parameterlisten angeben, solange der Ausdruck den Datentyp ergibt, den die Methode erwartet. Die Ausdrücke werden ausgewertet (unter der Verwendung der üblichen Regeln), bevor die Methode zu starten beginnt.


FRAGE 3:

Was ist die Position von pointB nach dem folgendem:

pointB.move( 24-12, 34*3 - 45 );
zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite