Klassen und Objekte
Jetzt kommt das Thema, das in der IHK-Prüfung am häufigsten drankommt: Objektorientierung. Die Idee: Statt Daten (Variablen) und Verhalten (Funktionen) getrennt zu halten, packst du beides zusammen in eine Klasse. Eine Klasse ist der Bauplan, ein Objekt ist ein konkretes Exemplar davon.
Tab rückt ein. Esc, dann Tab verlässt den Editor. Strg + Enter führt aus.
Python wird einmalig im Browser geladen (ein paar Sekunden). Danach laufen alle Übungen sofort.
Die Bausteine im Einzelnen: __init__ ist der Konstruktor, er läuft automatisch beim Erzeugen des Objekts und füllt die Attribute (self.name, self.jahr). self ist das Objekt selbst, darüber greifen Methoden (Funktionen in der Klasse) auf die eigenen Attribute zu.
Vererbung
Das zweite große OOP-Konzept ist Vererbung: Eine Klasse übernimmt alles von einer anderen und ergänzt oder ändert nur, was anders ist. Die „ist-ein“-Beziehung aus dem UML-Diagramm:
Tab rückt ein. Esc, dann Tab verlässt den Editor. Strg + Enter führt aus.
Python wird einmalig im Browser geladen (ein paar Sekunden). Danach laufen alle Übungen sofort.
Übungen
Erst selbst versuchen, dann die Lösung aufklappen.
Schreib eine Klasse Rechteck mit den Attributen breite und hoehe und einer Methode flaeche(), die die Fläche zurückgibt. Erzeuge zwei Rechtecke und gib ihre Flächen aus.
Tab rückt ein. Esc, dann Tab verlässt den Editor. Strg + Enter führt aus.
Python wird einmalig im Browser geladen (ein paar Sekunden). Danach laufen alle Übungen sofort.
Musterlösung anzeigen
class Rechteck:
def __init__(self, breite, hoehe):
self.breite = breite
self.hoehe = hoehe
def flaeche(self):
return self.breite * self.hoehe
r1 = Rechteck(4, 5)
r2 = Rechteck(10, 3)
print(r1.flaeche()) # 20
print(r2.flaeche()) # 30Erweitere die Azubi-Klasse um eine Methode geburtstag(), die das Lehrjahr um 1 erhöht (okay, fachlich eher „neues Ausbildungsjahr“, aber du verstehst das Prinzip). Rufe sie auf und lass das Objekt sich davor und danach vorstellen.
Tab rückt ein. Esc, dann Tab verlässt den Editor. Strg + Enter führt aus.
Python wird einmalig im Browser geladen (ein paar Sekunden). Danach laufen alle Übungen sofort.
Musterlösung anzeigen
def geburtstag(self):
self.jahr = self.jahr + 1
# Und unten:
a = Azubi("Alex", 1)
a.vorstellen()
a.geburtstag()
a.vorstellen() # jetzt 2. Lehrjahr