Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| efinf:blcks2017:oop [2018/03/16 14:19] – created Ivo Blöchliger | efinf:blcks2017:oop [2018/03/22 06:49] (current) – [OOP] Ivo Blöchliger | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== OOP ====== | ||
| + | * Encapsulation: | ||
| + | * Konstruktor | ||
| + | * Objekte: Klasse und Instanzen, '' | ||
| + | * Instanzvariablen und -methoden | ||
| + | * Beispiele | ||
| + | * Dogs | ||
| + | * Tetris-Table Code (tetriy.py) | ||
| + | * Ausblick | ||
| + | * Polymorphismus | ||
| + | * Policedog | ||
| + | * Klassenmethoden und -variablen. | ||
| + | |||
| + | ===== Aufgabe ===== | ||
| + | Programmieren Sie eine Klasse, um einen Punkt über den Tetris-Tisch zu steuern: | ||
| + | * Ein Konstruktor, | ||
| + | * Zwei Instanz-Variablen x,y für die Position | ||
| + | * Eine Methode move, die | ||
| + | * Den Joystick und Buttons ausliest, und je nachdem die Position verschiebt und in einer Farbe zeichnet oder löscht. Dazu sind eventuell weitere Instanz-Variablen nötig, um den Zustand der Knöpfe, bzw. Zeitpunkt der letzten Aktion zu speichern. | ||
| + | * Optional: eine Methode save, die die das akutelle Bild in eine Datei schreibt. | ||
| + | |||
| + | ===== import ===== | ||
| + | <code python bla.py> | ||
| + | print(" | ||
| + | def abc(): | ||
| + | print(" | ||
| + | |||
| + | class Humpfdidumpf(): | ||
| + | pass | ||
| + | </ | ||
| + | Mögliche imports | ||
| + | <code python> | ||
| + | import bla | ||
| + | </ | ||
| + | Der Code wird ausgeführt (schreibt also asfd) und | ||
| + | alle definierten Klassen und Funktionen sind danach verfügbar, mit dem Prefix bla., z.B. bla.abc(). | ||
| + | <code python> | ||
| + | from bla import Humpfdidumpf | ||
| + | </ | ||
| + | Nur die Klasse Humpfdidumpf ist verfügbar (ohne Prefix). z.B. h = Humpfdidumpf(). | ||
| + | |||
| + | |||
| + | |||