Kapitel 8: Klassen und Objekte
In diesem Kapitel werden wir uns ausführlich mit Klassen und Objekten in Python befassen, einem grundlegenden Konzept der objektorientierten Programmierung (OOP). Klassen sind Baupläne oder Vorlagen, mit denen wir eigene Datentypen erstellen können, während Objekte Instanzen dieser Klassen sind, die tatsächlich Daten speichern und Methoden ausführen können.
Klassen erstellen
Eine Klasse ist eine Sammlung von Datenattributen (Variablen) und Methoden (Funktionen), die gemeinsam eine Einheit bilden. Um eine Klasse zu erstellen, verwenden wir das Schlüsselwort "class" gefolgt vom Klassennamen. Hier ist ein Beispiel:
# Beispielcode für eine Klasse
class Person:
def __init__(self, name, alter):
self.name = name
self.alter = alter
def begrüße(self):
print(f"Hallo, mein Name ist {self.name} und ich bin {self.alter} Jahre alt.")
In diesem Beispiel haben wir die Klasse "Person" erstellt, die zwei Datenattribute "name" und "alter" enthält, sowie eine Methode "begrüße", die eine Begrüßungsnachricht ausgibt.
Der Begriff "__init__" steht in Python für den Konstruktor einer Klasse. Ein Konstruktor ist eine spezielle Methode, die automatisch aufgerufen wird, wenn ein neues Objekt einer Klasse erstellt wird. Der Zweck des Konstruktors besteht darin, den initialen Zustand des Objekts festzulegen und seine Datenattribute zu initialisieren.
Der Konstruktor wird durch die Methode "__init__" definiert und nimmt als ersten Parameter das Schlüsselwort "self" entgegen. Das "self" repräsentiert dabei das Objekt selbst, das gerade erstellt wird. Es ist eine Konvention in Python, "self" als ersten Parameter des Konstruktors (und jeder anderen Methode in der Klasse) zu verwenden. Es zeigt an, dass die Methode auf das Objekt selbst zugreifen kann und damit auf seine Datenattribute und Methoden.
In der "init" Methode können wir die Datenattribute des Objekts initialisieren, indem wir sie mit den übergebenen Parametern oder Default-Werten versehen. Die Datenattribute sind wie Variablen, die für jedes einzelne Objekt in der Klasse einzigartig sind.
Beim Erstellen von "person1" und "person2" werden die Werte "Max" und 25 für "name" bzw. "Anna" und 30 für "alter" übergeben, und die Konstruktor-Methode setzt die Datenattribute entsprechend.
Das "self" ermöglicht es uns, auf die Datenattribute des Objekts in anderen Methoden zuzugreifen. Zum Beispiel können wir die Methode "begrüße" aufrufen, um eine Begrüßungsnachricht auszugeben, die auf den Datenattributen "name" und "alter" basiert:
Insgesamt ermöglicht uns "init" in Kombination mit "self", den Zustand jedes erstellten Objekts individuell zu initialisieren und somit ein flexibles und leistungsfähiges Konzept für die objektorientierte Programmierung in Python bereitzustellen.
Objekte instanziieren
Ein Objekt ist eine Instanz einer Klasse und repräsentiert ein konkretes Exemplar dieses Datentyps. Um ein Objekt zu erstellen, rufen wir den Klassennamen auf und übergeben die erforderlichen Parameter an den Konstruktor, der durch die Methode "__init__" definiert wird. Hier ist ein Beispiel:
# Beispielcode zur Instanziierung eines Objekts
person1 = Person("Max", 25)
person2 = Person("Anna", 30)
In diesem Beispiel haben wir zwei Objekte "person1" und "person2" erstellt, die beide die Klasse "Person" verwenden. Wir übergeben jeweils einen Namen und ein Alter als Parameter, die dann in den entsprechenden Datenattributen der Objekte gespeichert werden.
Methoden aufrufen
Nachdem wir Objekte erstellt haben, können wir ihre Methoden aufrufen, um Aktionen auszuführen. Die Methoden haben Zugriff auf die Datenattribute des Objekts über das Schlüsselwort "self". Hier ist ein Beispiel:
# Beispielcode zum Aufrufen von Methoden
person1.begrüße() # Ausgabe: Hallo, mein Name ist Max und ich bin 25 Jahre alt.
person2.begrüße() # Ausgabe: Hallo, mein Name ist Anna und ich bin 30 Jahre alt.
In diesem Beispiel haben wir die Methode "begrüße" für die Objekte "person1" und "person2" aufgerufen. Die Methode greift auf die Datenattribute "name" und "alter" des jeweiligen Objekts zu und gibt die entsprechende Begrüßungsnachricht aus.
Zusammenfassung:
In diesem Kapitel haben wir gelernt, was Klassen und Objekte sind und wie wir eigene Klassen erstellen und Objekte dieser Klassen instanziieren können. Klassen ermöglichen es uns, eigene Datentypen zu definieren, die Datenattribute und Methoden enthalten. Objekte sind Instanzen dieser Klassen, die tatsächlich Daten speichern und Methoden ausführen können. Klassen und Objekte sind grundlegende Konzepte der objektorientierten Programmierung und ermöglichen es uns, den Code besser zu organisieren und wiederverwendbare Strukturen zu erstellen.