Fachkonzept - Objekt

Was ist eigentlich ein (Software-)Objekt?

Ganz einfach - eine Software-Einheit, die wie ein Objekt der realen Welt beschrieben werden kann. Alles klar? Sicher noch nicht. Also betrachten wir erst einmal ein konkretes Beispiel.

Objekte unserer Welt sind fassbare Gegenstände (wie z.B. Schuhe und Hasen im Zoo) oder auch Konstrukte unseres Denkens (wie z.B. Hasen im Computer).

Schuhe[1]

Betrachten wir Schuhe als Beispiel. Wenn man seine neuen Schuhe charakterisieren will, dann fallen einem sofort eine Reihe von Eigenschaften ein: Modell: Sneaker; Größe: 40; Farbe: rot; Verschluss: Schnürsenkel usw.. Schuhe haben nicht nur bestimmte Eigenschaften, mit ihnen kann man auch bestimmte "Operationen" ausführen: Zum An- und Ausziehen kann man sie in einem gewissen Sinn öffnen und schließen (z.B. durch Öffnen und Binden der Schnürsenkeln).

Entsprechend können wir einen (Software-)Hasen charakterisieren. Auch ein Hase hat Eigenschaften wie z.B. die aktuelle Position auf einem Spielfeld oder die Zahl der gegessenen Karotten. Auch Hasen stellen Operationen bereit wie z.B. das Laufen oder das Essen einer Karotte.

Die Welt in der wir leben und die virtuelle Welt im Computer besteht also (oder kann zumindest so beschrieben werden) aus Objekten, die Eigenschaften haben und die bestimmte Operationen ausführen können.

Man hat - übrigens sehr erfolgreich - Möglichkeiten gefunden, Software so zu organisieren, dass sie große Ähnlichkeiten zu Objekten unserer Welt aufweist. Auch das machen wir am besten an einem Beispiel klar. Wir betrachten die Simulation von Hasen mit Hilfe einer Software-Einheit.

Angelehnt an einen Hasen als Objekt der realen Welt soll ein Software-Objekt hase konzipiert werden. Das folgende Ablaufprotokoll verdeutlicht die Arbeitsweise eines Software-Objekts hase:

Hase1

Wenn man dem Hasen-Objekt dann sagt, er soll laufen, besitzt dieser danach einen anderen Zustand, der sich folgendermaßen darstellen lässt:

Hase2

Schließlich sagt man diesem Hasen, dass er eine Karotte essen soll. Vorausgesetzt er befand sich bei einer Karotte, dann besitzt er nun folgenden Zustand:

Hase3

Das Software-Objekt verwaltet Daten zu bestimmten Eigenschaften. Im vorliegenden Fall sind das u.a. die Zahl der gegessenen Karotten, die aktuelle x-Position und die aktuelle y-Position. Das Software-Objekt hase nutzt hierzu die Variablen gegesseneKarotten, x und y.

Das Software-Objekt stellt Operationen zur Verarbeitung der verwalteten Daten bereit. Im vorliegenden Fall sind das u.a. die Operationen einen Schritt laufen und eine Karotte essen, die durch die Methoden laufe() und esseKarotte() dargestellt werden.

Das Software-Objekt ist also eine Einheit, die Daten verwaltet und Operationen zur Verarbeitung der verwalteten Daten zur Verfügung stellt. Statt von Software-Objekten wird im Folgenden kurz von Objekten gesprochen.

Die wichtigsten Konzepte zu Objekten lassen sich folgendermaßen zusammenfassen:

Fachkonzept Objekt

Ein Objekt ist eine Einheit, die Daten mit Hilfe von Attributen verwalten und Operationen zur Verarbeitung der verwalteten Daten mit Hilfe von Methoden ausführen kann.

Attribute sind - an Objekte gebundene - Variablen zur Verwaltung von Daten. Diese entsprechen in der Regel den Eigenschaften der betreffenden Objekte.

Methoden sind - an Objekte gebundene - Fähigkeiten zur Verarbeitung von Daten. Diese Methoden werden ausgeführt, wenn das betreffende Objekt veranlasst wird, eine bestimmte Operation auszuführen.

Der Objektzustand

Ein Objekt befindet sich stets in einem bestimmten Zustand. Der aktuelle Objektzustand wird durch die aktuellen Werte der Attribute festgelegt.

Im Ablaufprotokoll oben befindet sich das Objekt hase zunächst im Zustand

{hase: gegesseneKarotten -> 0, x -> 5, y -> 2}.

Nach Abarbeitung der beiden Methodenaufrufe ist das Objekt hase schließlich im Zustand

{hase: gegesseneKarotten -> 1, x -> 6, y -> 2}.

Den Zustand eines Objekts verdeutlicht man oft mit einem Objektdiagramm:

Hase1
In Greenfoot (und BlueJ) kann man durch Rechtsklick auf ein Objekt eine Objektdiagramm-ähnliche Darstellung mit Hilfe des Objektinspektors bekommen. Im Fall des Hasen sieht man noch einige andere Attribute, die z.B. für die grafische Darstellung des Hasen benötigt werden.
Objektinspektor für Hase

Aufrufen von Methoden

Eine Methode kann man in Greenfoot (und BlueJ) durch Rechtsklick auf ein Objekt ausführen.

Methodenaufruf

Das Objekt hase wird hierdurch aufgefordert, die Methode laufe auszuführen.

Einige Methoden benötigen zusätzliche Informationen, um ausgeführt werden zu können. Die Methode setRichtung bspw. benötigt eine Zahl zwischen 0 und 3, welche die neue Richtung definiert. Werte, die man beim Aufruf einer Methode angibt, nennt man aktuelle Parameter.

Parameter

Außerdem können Methoden Werte als Ergebnis zurück liefern. Die Methode getZahlKarotten bspw. gibt die Zahl der gegessenen Karotten zurück. Diesen Wert nennt man Rückgabewert.

Rückgabewert

Vererbung

Ein Schlittschuh ist ein Schuh. Er hat Eigenschaften wie eine Größe, Farbe und einen Verschluss. Auch kann man die Operationen "öffnen" und "schließen" ausführen. Er besitzt aber ein weiteres, wichtiges Mermal: Die Kufe. Diese kann im Stil eines Eishockey- oder eines Eiskunstlaufschlittschuhs sein. Dadurch besitzt er auch eine weitere Operation, die man an ihm ausführen kann. Man kann ihn schleifen. Er besitzt also alle Eigenschaften (Attribute) und mögliche Operationen (Methoden), die auch ein normaler Schuh besitzt. Diese werden aber durch weitere Eigenschaften und Methoden erweitert. Man sagt: Schlittschuh erbt alle Eigenschaften und Fähigkeiten von Schuh.

Alle Objekte, die in Greenfoot auf der Welt positioniert sind, sind Akteure oder auf englisch Actor-Objekte. Ein Actor besitzt Eigenschaften, die jedes Objekt auf der Welt haben muss. Dazu gehören z.B. ein Bild, seine x- und y-Koordinaten und eine Richtung. Ein Actor besitzt auch verschiedene Methoden, die jedes Actor-Objekt ausführen kann. Jeder Actor kann z.B. seine aktuelle x- und y-Koordinate zurück geben oder seine eigene Position ändern.

Die Eigenschaften und Methoden, die ein Hase hat, ergeben sich somit aus den Eigenschaften und Methoden, die ein Actor hat und denen, die noch spezifisch für einen Hasen sind. Nur der Hase kann laufen oder Karotten essen. Eine Position auf der Welt hat dagegen auch ein Stein oder eine Karotte.

Die geerbten von den nicht geerbten Methoden kann man in Greenfoot (und BlueJ) sehr einfach voneinander unterscheiden, wenn man eine Methode aufruft:

Vererbung

Quellen

X

Fehler melden

X

Suche