Lektion 10: Klassen-Basics (OOP)
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.
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.
Brücke zur IHK: Das hier ist exakt das, was im UML-Klassendiagramm steht. Oben der Klassenname (Azubi), in der Mitte die Attribute (name, jahr), unten die Methoden (vorstellen()). Wenn du eine Klasse in Python schreiben kannst, kannst du auch das Diagramm dazu zeichnen, und umgekehrt.
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:
Übung 10.1: 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.
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()) # 30Übung 10.2: Erweitere 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.
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