Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| ef:objektorientierte_programmierung [2024/10/01 14:17] – lehmannr | ef:objektorientierte_programmierung [2024/10/08 15:11] (aktuell) – lehmannr | ||
|---|---|---|---|
| Zeile 139: | Zeile 139: | ||
| <WRAP nicebox green> | <WRAP nicebox green> | ||
| **Auftrag 1** | **Auftrag 1** | ||
| - | - Betrachte | + | - Betrachte |
| - Welche Klassen bzw. Objekte wurden definiert/ | - Welche Klassen bzw. Objekte wurden definiert/ | ||
| - Gibt es Klassenvariablen und Klassenmethoden? | - Gibt es Klassenvariablen und Klassenmethoden? | ||
| - Gibt es Instanzvariablen und Instanzmethoden? | - Gibt es Instanzvariablen und Instanzmethoden? | ||
| - | - Warum wurde wohl die y-Position als Klassenvariable definiert? | + | - Warum wurde wohl die y-Position |
| - Warum wurden wohl '' | - Warum wurden wohl '' | ||
| - | - Erkläre die Vererbung | + | - Erkläre die Vererbung |
| - | - Erkläre am konkreten Programm die Methode '' | + | - Erkläre am konkreten Programm |
| - Wozu ist Datenkapselung gut? Erkläre, wie sie im gegebenen Programm implementiert wurde. | - Wozu ist Datenkapselung gut? Erkläre, wie sie im gegebenen Programm implementiert wurde. | ||
| - | - Was bedeuten die Begriffen **overriding (überschreiben)** und **overloading (überladen)** in der Objektorientierten Programmierung. Wird eines dieser Konzepte | + | - Was bedeuten die Begriffen **overriding (überschreiben)** und **overloading (überladen)** in der Objektorientierten Programmierung. Wird eines dieser Konzepte |
| </ | </ | ||
| Zeile 157: | Zeile 157: | ||
| * Betrachte das Car-Beispiel und vesuche es zu verstehen. | * Betrachte das Car-Beispiel und vesuche es zu verstehen. | ||
| * Erweitere das Car-Beispiel. | * Erweitere das Car-Beispiel. | ||
| + | * Füge ein Element hinzu, so dass erkennbar ist, wo vorne/ | ||
| + | * Ändere das Programm, so dass man ein Auto mit den Pfeiltasten steuern kann. | ||
| + | * Versuche das Programm zu ändern, indem du eine Vaterklasse " | ||
| + | * Verwende das Prinzip " | ||
| </ | </ | ||
| + | |||
| + | === 2.3 Ein Processing-Beispiel: | ||
| <sxh python> | <sxh python> | ||
| Zeile 165: | Zeile 171: | ||
| size(500, | size(500, | ||
| background(255) # Hintergrundfarbe (weiss) | background(255) # Hintergrundfarbe (weiss) | ||
| - | stroke(200) # Linienfarbe (grau) | ||
| - | for i in range(0, | ||
| - | line(0, | ||
| - | line(i, | ||
| | | ||
| car1 = Car(200, | car1 = Car(200, | ||
| - | # car2 = Car(20,100, 0, [250, | + | # |
| car1.drawCar() | car1.drawCar() | ||
| - | # car2.drawCar() | + | # |
| def drawBackground(): | def drawBackground(): | ||
| Zeile 181: | Zeile 183: | ||
| line(0, | line(0, | ||
| line(i, | line(i, | ||
| - | |||
| def draw(): | def draw(): | ||
| Zeile 219: | Zeile 220: | ||
| def turn(self, angle): | def turn(self, angle): | ||
| self.dir += radians(angle) | self.dir += radians(angle) | ||
| - | |||
| - | |||
| - | #car1 = Car(200, | ||
| - | #car2 = Car(20,100, 0, [250, | ||
| - | # | ||
| - | # | ||
| - | |||
| </ | </ | ||
| - | |||
| [[https:// | [[https:// | ||
| [[https:// | [[https:// | ||