Wir zeigen diese Programmiertechnik an einem einfachen Beispiel:
|
Im Hauptprogramm wird die Methode petal() in einer for-Schleife aufgerufen, um alle 8 Blätter der Blume zu zeichnen.
// Tu11.java import ch.aplu.turtle.*; public class Tu11 { Turtle t = new Turtle(); public Tu11() { t.speed(-1); for (int k = 0; k < 8; k++) { petal(); t.right(45); } } void arc() { for(int i = 0; i < 30; i++) { t.forward(4); t.right(3); } } void petal() { arc(); t.right(90); arc(); } public static void main(String[] args) { new Tu11(); } } |
Erklärungen zum Programmcode:
void arc() { } |
Methodendeklaration |
arc() | Methodenaufruf |
void petal() { arc(); t.right(90); arc(); } |
arc() ist Methodenaufruf einer eigenen Methode, deshalb ist kein t.nötig, im Gegensatz zum Methodenaufruf t.right(90), wo eine Methode aus der Klasse Turtle verwendet wird |
|
Erklärungen zum Programmcode:
speed(-1) setPenColor(Color.red) fillToPoint(0, 0) |
Es ist darauf zu achten, dass die Methoden korrekt aufgerufen werden. Methoden, die eine allgemeine Zustandänderung bewirken, sollten nicht in einer Wiederholungsstruktur aufgerufen werden. In unserem Beispiel wäre nicht sinnvoll, die Stiftfarbe oder Turtlespeed beim Zeichnen jedes einzelnen Blattes erneut zu setzen. Auch die fillToPoint() Methode kann im Konstructor (vor der for-Schleife) nur einmal aufgerufen werden, da immer vom gleichen Punkt aus gefüllt wird |