Kapitel 1
Grundlagen
36
Objekte sind in der Lage, bestimmte Operationen auszuführen, die man Methoden nennt.
Ein Blumenhändler z.B. kann einen Lieferauftrag für Blumen entgegennehmen, Sträuße
binden, einen Boten schicken, beim Großhandel neue Blumen einkaufen usw. Wenn ein
Objekt eine geeignete Botschaft empfängt, wird eine zur Botschaft passende Operation
gestartet. Man sagt: Die Methode wird aufgerufen. Der Umwelt, das heißt den anderen
Objekten, ist bekannt, welche Methoden ein Objekt beherrscht. Die Umwelt weiß von den
Methoden nur,
was sie bewirken
welche Daten sie als Eingabe benötigen
Die Umwelt weiß aber nicht, wie das Objekt funktioniert, das heißt, nach welchen Algorith-
men die Botschaften verarbeitet werden. Dieses bleibt ein privates Geheimnis des Objektes.
Leonie hat keine Ahnung, wie Mark den Blumentransport bewerkstelligt. Es interessiert sie
auch gar nicht. Ihre Aufgabe bestand allein darin, für ihr Problem ein geeignetes Objekt zu
finden und ihm eine geeignete Botschaft zu senden. Ein ungeeignetes Objekt wäre zum Bei-
spiel Tom, der Zahnarzt, oder Katrin, die Leiterin des Wasserwerks gewesen. Diese Objekte
hätten Leonis Nachricht gar nicht verstanden und zurückgewiesen. Außerdem ist für Leonie
wichtig, wie sie die Botschaft an Mark formuliert. Sie muss ihm ihren Namen mitteilen
(damit der Empfänger weiß, von wem die Blumen sind), die Adresse des Empfängers sowie
Anzahl und Sorte der Blumen, die gesendet werden sollen.
Eine Methode ist die Implementierung (technische Realisierung) eines Algorithmus. Bei
der Programmierung einer Methode mit Python (oder einer anderen objektorientierten
Sprache) wird also wieder das imperative Paradigma wichtig.
1.7.4 Objekte sind Instanzen von Klassen
Die Objekte des Beispiels kann man in Gruppen einteilen. Sascha und Mark sind beide Blu-
menhändler. Sie beherrschen beide dieselben Methoden und besitzen dieselben Attribute
(z.B. die Stadt), allerdings mit unterschiedlichen Werten. Man sagt: Sascha und Mark sind
Instanzen der Klasse »Blumenhändler«. In der objektorientierten Programmierung ist eine
Klasse die Definition eines bestimmten Typs von Objekten. Sie ist so etwas wie ein Bauplan,
in dem die Methoden und Attribute beschrieben werden. Nach diesem Schema können
Objekte (Instanzen) einer Klasse erzeugt werden. Ein Objekt ist eine Konkretisierung, eine
Inkarnation einer Klasse. Alle Instanzen einer Klasse sind von der Struktur her gleich. Sie
unterscheiden sich allein in der Belegung ihrer Attribute mit Werten. Die Objekte Sascha
und Mark besitzen dasselbe Attribut »Stadt«, aber bei Sascha trägt es den Wert »Berlin« und
bei Mark »Bonn«.
1.8 Hintergrund: Geschichte der objektorientierten
Programmierung
Die Grundideen der Objektorientierung (wie z.B. die Begriffe Klasse und Objekt) tauchen
zum ersten Mal in der Simulationssprache SIMULA auf. Sie wurde von Ole-Johan Dahl and
Kristen Nygaard am Norwegian Computing Centre (NCC) in Oslo zwischen 1962 und 1967
entwickelt und diente zur Simulation komplexer Systeme der realen Welt. Die erste univer-
sell verwendbare objektorientierte Programmiersprache wurde in den Jahren 1970 bis 1980

Get Python 3 - Lernen und professionell anwenden now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.