Was ist falsch an dem folgendem Codesegment?

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

Eine gute Antwort könnte sein:

Die zweite Anweisung ruft die Methode move() von myPoint auf, aber 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 Sie sich die Beschreibung der Klasse Point ansehen, wird die move() Methode folgendermaßen beschrieben:

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

Diese Beschreibung besagt, dass die Methode zwei Parameter erfordert:

  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 col = 87;
int row = 55;
pointA.move( col, row );

pointB.move( col-4; row*2 + 34 );

Sie 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 );