efinf:blcks2017:oop

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
efinf:blcks2017:oop [2018/03/16 14:19] – created Ivo Blöchligerefinf:blcks2017:oop [2018/03/22 06:49] (current) – [OOP] Ivo Blöchliger
Line 1: Line 1:
 +====== OOP ======
 +  * Encapsulation: Daten und Code als Einheit.
 +  * Konstruktor
 +  * Objekte: Klasse und Instanzen, ''self''
 +    * 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, der eine helper-Instanz erwartet, und die Position festlegt.
 +  * 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("asdf")
 +def abc():
 +  print("ABC!")
 +
 +class Humpfdidumpf():
 +  pass
 +</code>
 +Mögliche imports
 +<code python>
 +import bla
 +</code>
 +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
 +</code>
 +Nur die Klasse Humpfdidumpf ist verfügbar (ohne Prefix). z.B. h = Humpfdidumpf().
 +
 +
 +