10.2 Eine bessere zeichneQuadrat-Methode - Polymorphie |
|
Schnell
ist man mit der selbstgeschriebenen Methode
zeichneQuadrat()
unzufrieden. Mit ihr kann man nur eine Sorte Quadrat zeichnen, nämlich
Quadrate, die eine Seitenlänge von 100 Pixel haben. Das ist so, als hätten
wir nur eine Methode forward(), die eine Turtle immer nur um 100 Pixel
weiter sich bewegen lässt. Tatsächlich heißt die Methode auch:
forward(double schrittlaenge) Statt zeichneQuadrat() hätten wir lieber zeichneQuadrat(double
seite) |
|
eine neue Methode zeichneQuadrat(...) |
|
Download: MeineTurtle.java |
Die gelb
unterlegten Stellen markieren die Veränderungen gegenüber der 'alten'
Methode. Wir erkennen, dass die Seitenlänge des gezeichneten Quadrats erst
erst beim Aufruf der Methode festliegt. Dazu wird die Variable
seite
in der Parameterliste deklariert und durch den Aufruf initialisiert. Wir
fügen unserer Klasse MeineTurtle
die neue Methode zeichneQuadrat(double
seite) hinzu.
Interessant ist, dass beide
Methoden zeichneQuadrat()
und zeichneQuadrat(double
seite) nebeneinander existieren
können. Beide Methoden haben zwar den gleichen Namen unterscheiden sich
aber in der Parameterliste; wir sagen auch: sie unterscheiden sich in
ihrer Signatur. Diese unterschiedliche Signatur erlaubt es auch dem
Compiler diese Methoden zu unterscheiden. Dass Methoden gleichen Namens
unterschiedliches tun, nennt man in der Fachsprache auch Polymorphie
(Vielgestaltigkeit). Im Laufe des Kurses werden wir weitere Formen der
Polymorphie kennen lernen |
Download: | Wie man
die neue Methode benutzt, zeigt die
zeichne()-Methode
von Quadrate2.java
das nachstehende Beispiel.
t1 und t2 müssen natürlich wieder MeineTurtle-Objekte sein. Auch müssen Quadrate2 und MeineTurtle im gleichen Verzeichnis liegen (für Kenner: MeineTurtle.class kann auch in einem anderen Verzeichnis liegen, dann muss für Java dieses Verzeichnis in einem classpath gesetzt sein)
|
zu | 10.3 Übungen |
zur Startseite | www.pohlig.de (C) MPohlig 2003 |