Beispiel Weihnachtsbaum
Beispiel 4: Weihnachtsbaum (Methoden rufen sich gegenseitig auf)
Schreibe eine Klasse Baum, mit einer Methode zeichneBaum(int breite), die wiederum die Methoden zeichneKrone(int breite) und zeichneStamm(int stammbreite) aufruft um damit einen Baum wie in der nebenstehenden Abbildung zu zeichnen.
Methoden eines Objekts können andere Methoden desselben Objekts aufrufen. Dadurch lassen sich komplexe Methoden (z.B. zeichneBaum) in weniger komplexe Methoden (zeichneKrone, zeichneStamm) zerlegen, die wiederum auf noch einfachere Methoden (gibZeichenAus) zurückgreifen, usw.
Aus einer Methode eines Objekts heraus ruft man eine andere Methode desselben Objekts auf, in dem man einfach ihren Bezeichner verwendet (ohne „Punktschreibweise“), z.B.
void zeichneBaum(int baumbreite) {
zeichneKrone(baumbreite);
zeichneStamm(baumbreite);
}
Beispiel 5: ASCII-Art-Klasse
Kennst Du ASCII-Art? Wir schreiben eine Klasse AsciiArt, deren Methoden geometrische Figuren ausgeben, die aus Textzeichen zusammengesetzt sind.
Hier ein Beispielprogramm und seine Ausgabe:
AsciiArt art = new AsciiArt(); // Rechteck mit Breite 8, Höhe 6 art.zeichneRechteck(8, 6, Color.lightblue); // Kreuz mit Balkendicke 3, Höhe 13 art.zeichneKreuz(2, 10, Color.lightgreen); // Kreis mit Radius 8 art.zeichneKreis(4, Color.yellow);
Aufgabe 1
Schreibe eine Klasse GeoHelfer mit den Methoden berechneDreiecksfläche, berechneZylindervolumen und berechneZylinderOberfläche.
Hier ein Tipp
Aufgabe 2
Schreibe eine Klasse ZahlenHelfer mit folgenden Methoden:
- Die Methode
zufallbekommt als Parameter zwei ganze Zahlenvonundbisund gibt eine zufällige ganze Zahl zwischenvonundbiszurück. - Die Methode
summebekommt als Parameter eine ganze Zahlzund gibt die Summe $1 + 2 + \ldots + z$ zurück.
Hier ein kleiner Tipp
Aufgabe 3 (etwas schwerer...)
Erweitere die Klasse AsciiArt von oben um eine Methode void zeichneX(int breite, int linienstärke, String farbe), die ein großes X aus lauter X-Zeichen zusammensetzt. Die Ausgabe von art.zeichneX(10, 2, Color.pink); sieht beispielsweise so aus, wie im Bild rechts zu sehen.
Hier geht's zur Lösung!