Inhaltsverzeichnis
In all unseren bisherigen Programmen haben wir unser Programm um Funktionen oder Anweisungsblöcke herum entwickelt, in denen Daten manipuliert werden. Dies wird die prozedurorientierte Programmierweise genannt. Es gibt eine andere Weise, sein Programm zu organisieren, die darin besteht, Daten und Funktionalität zu kombinieren und sie in etwas zusammenzupacken, das man ein Objekt nennt. Dies wird das objektorientierte Paradigma der Programmierung genannt. Meistens kann man mit prozedurorientierter Programmierung auskommen, aber wenn man große Programme schreiben will oder eine Lösung haben möchte, die dafür besser geeignet ist, dann sollte man objektorientierte Programmiertechniken verwenden.
Klassen und Objekte sind die beiden Hauptaspekte der objektorientierten Programmierung.
Eine Klasse erzeugt einen neuen Datentyp,
wobei Objekte die Instanzen der Klasse sind.
Man kann dies damit vergleichen, dass man Variablen vom Datentyp int
haben kann,
was dann mit anderen Worten bedeutet, dass Variablen, die Ganzzahlen speichern, Variablen sind, die Instanzen (Objekte)
der Klasse int
sind.
Beachten Sie, dass in Python sogar Ganzzahlen als Objekte (der Klasse int
)
behandelt werden. Dies ist anders als C++ und Java (vor Version 1.5), wo Ganzzahlen primitive eingebaute
Datentypen sind. Siehe help(int)
für weitere Einzelheiten zu dieser Klasse.
C#- und Java-1.5-Programmierer wird dieses Konzept bekannt vorkommen, weil es dem Boxing/Unboxing-Mechanismus ähnlich ist.
Objekte können Daten in gewöhnlichen Variablen speichern, die zu dem Objekt gehören. Variablen, die zu einem Objekt oder einer Klasse gehören, werden Felder genannt. Objekte können auch Funktionalität aufweisen, die durch Funktionen ausgelöst werden, die zu der Klasse gehören. Solche Funktionen werden Methoden der Klasse genannt. Die Sprechweise ist wichtig, weil sie uns hilft, zwischen Funktionen und Variablen zu unterscheiden, die separat für sich stehen, und solchen, die zu einer Klasse oder einem Objekt gehören. Insgesamt werden die Felder und Methoden als die Attribute der Klasse bezeichnet.
Von Feldern gibt es zwei Typen - sie können entweder zu jeder Instanz (jedem Objekt) der Klasse gehören, oder sie können zur Klasse selbst gehören. Dementsprechend werden sie im ersten Fall Instanzvariablen und im zweiten Fall Klassenvariablen genannt.
Eine Klasse wird mit dem Schlüsselwort class
erzeugt. Die Felder und Methoden
der Klasse werden in einem eingerückten Block aufgelistet.