g9:uebungen:vererbung:start
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
g9:uebungen:vererbung:start [2022/06/30 07:51] – [Beispiel 4: Klasse "Stern"] Martin Pabst | g9:uebungen:vererbung:start [2022/07/01 07:46] (aktuell) – [Beispiel 7: Fraktaler Baum] Martin Pabst | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Vererbung ====== | ====== Vererbung ====== | ||
- | ====== Beispiel 1: Fliegende Rechtecke ====== | + | ====== Beispiel 1: Advanced Robot ====== |
+ | |||
+ | <WRAP center round todo 80%> | ||
+ | Die Klasse Robot hat alle Methoden, die Du von Robot Karol her kennst. Erweitere sie um weitere Methoden: | ||
+ | * Die Methode '' | ||
+ | * Die Methode '' | ||
+ | * Die Methode '' | ||
+ | * Die Methode '' | ||
+ | * Die Methode '' | ||
+ | |||
+ | Lass Dir noch weitere Methoden einfallen und schreibe ein Hauptprogramm, | ||
+ | </ | ||
+ | |||
+ | |||
+ | < | ||
+ | |||
+ | <div class=" | ||
+ | |||
+ | <script type=" | ||
+ | AdvancedRobot tom = new AdvancedRobot(1, | ||
+ | tom.legeQuadrat(4); | ||
+ | tom.baueTreppe(3); | ||
+ | |||
+ | class AdvancedRobot extends Robot { | ||
+ | |||
+ | void umdrehen() { | ||
+ | linksDrehen(); | ||
+ | linksDrehen(); | ||
+ | } | ||
+ | |||
+ | void gehe(int schrittzahl) { | ||
+ | for (int i = 0; i < schrittzahl; | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | |||
+ | void legeBahn(int länge) { | ||
+ | for (int i = 0; i < länge; i++) { | ||
+ | | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | |||
+ | void legeQuadrat(int seitenlänge) { | ||
+ | for (int s = 0; s < 4; s++) { | ||
+ | | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | |||
+ | void baueTreppe(int höhe) { | ||
+ | for (int i = 0; i < höhe; i++) { | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ====== Beispiel 2: Fliegende Rechtecke ====== | ||
Starte das Programm und regle die Geschwindigkeit langsam hoch! | Starte das Programm und regle die Geschwindigkeit langsam hoch! | ||
< | < | ||
Zeile 128: | Zeile 190: | ||
[[: | [[: | ||
- | ====== Beispiel | + | ====== Beispiel |
Die Programmiersprache stellt bisher nur Objekte zum Zeichnen von Rechtecken, Kreisen, Polygonen und Sprites zur Verfügung. Ich zeige Dir, wie man durch Erweiterung der Klasse Polygon leicht weitere Objektklassen erstellen kann. Im Folgenden entwickeln wir eine Klasse " | Die Programmiersprache stellt bisher nur Objekte zum Zeichnen von Rechtecken, Kreisen, Polygonen und Sprites zur Verfügung. Ich zeige Dir, wie man durch Erweiterung der Klasse Polygon leicht weitere Objektklassen erstellen kann. Im Folgenden entwickeln wir eine Klasse " | ||
Zeile 165: | Zeile 227: | ||
- | ====== Beispiel | + | ====== Beispiel |
Die Programmiersprache stellt bisher nur Objekte zum Zeichnen von Rechtecken, Kreisen, Polygonen und Sprites zur Verfügung. Ich zeige Dir, wie man durch Erweiterung der Klasse Polygon leicht weitere Objektklassen erstellen kann. Im Folgenden entwickeln wir eine Klasse " | Die Programmiersprache stellt bisher nur Objekte zum Zeichnen von Rechtecken, Kreisen, Polygonen und Sprites zur Verfügung. Ich zeige Dir, wie man durch Erweiterung der Klasse Polygon leicht weitere Objektklassen erstellen kann. Im Folgenden entwickeln wir eine Klasse " | ||
Zeile 280: | Zeile 342: | ||
</ | </ | ||
- | ===== Feuerwerk ===== | + | ===== Beispiel 5: Feuerwerk ===== |
Das Beispiel " | Das Beispiel " | ||
+ | |||
+ | ====== Beispiel 6: Kochkurve ====== | ||
+ | < | ||
+ | |||
+ | <div class=" | ||
+ | |||
+ | <script type=" | ||
+ | new World(1000, 1000); | ||
+ | Kochkurve k = new Kochkurve(7); | ||
+ | |||
+ | class Kochkurve extends Turtle { | ||
+ | |||
+ | | ||
+ | super(50, 700); | ||
+ | setBorderWidth(3); | ||
+ | int länge = 700; | ||
+ | turn(60); | ||
+ | zieheLinie(länge, | ||
+ | turn(-120); | ||
+ | zieheLinie(länge, | ||
+ | turn(-120); | ||
+ | zieheLinie(länge, | ||
+ | } | ||
+ | |||
+ | | ||
+ | if(tiefe == 0) { | ||
+ | | ||
+ | | ||
+ | } | ||
+ | |||
+ | zieheLinie(länge / 3, tiefe - 1); | ||
+ | turn(60); | ||
+ | zieheLinie(länge / 3, tiefe - 1); | ||
+ | turn(-120); | ||
+ | zieheLinie(länge / 3, tiefe - 1); | ||
+ | turn(60); | ||
+ | zieheLinie(länge / 3, tiefe - 1); | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | ====== Beispiel 7: Fraktaler Baum ====== | ||
+ | < | ||
+ | |||
+ | <div class=" | ||
+ | |||
+ | <script type=" | ||
+ | new FraktalerBaum(400, | ||
+ | |||
+ | class FraktalerBaum extends Turtle { | ||
+ | |||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | super(x, y); | ||
+ | this.faktor = faktor; | ||
+ | this.winkel = winkel; | ||
+ | setBorderWidth(2); | ||
+ | turn(90); | ||
+ | zeichneAst(tiefe, | ||
+ | } | ||
+ | |||
+ | void zeichneAst(int n, double länge) { | ||
+ | if(n == 0) return; | ||
+ | |||
+ | forward(länge); | ||
+ | turn(winkel); | ||
+ | zeichneAst(n - 1, länge * faktor); | ||
+ | turn(-2*winkel); | ||
+ | zeichneAst(n - 1, länge * faktor); | ||
+ | turn(winkel); | ||
+ | turn(180); | ||
+ | penUp(); | ||
+ | forward(länge); | ||
+ | turn(180); | ||
+ | penDown(); | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ |
g9/uebungen/vererbung/start.1656568297.txt.gz · Zuletzt geändert: 2022/06/30 07:51 von Martin Pabst