Fachkonzept - Objekt

Was ist eigentlich ein (Software-)Objekt?

ZufI

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 Roboter) oder auch Konstrukte unseres Denkens (wie z.B. Konten).

Schuhe
Quelle: Wikimedia Commons

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). Vielleicht kann man sie auch benutzen, um einen Nagel einzuschlagen, obwohl sie dafür eigentlich nicht gedacht sind.

Entsprechend können wir ein Konto charakterisieren. Auch ein Konto hat Eigenschaften wie z.B. den aktuellen Kontostand. Auch Konten stellen Operationen bereit wie z.B. das Ein- und Auszahlen von Geldbeträgen.

Soweit die Welt, in der wir leben und die unser Denken prägt. Sie besteht (oder kann zumindest so beschrieben werden) aus Objekten, die Eigenschaften haben und die mit bestimmten Operationen bearbeitet werden können.

Aber, was hat das mit der Entwicklung von Software zu tun? 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 Verwaltung von Bankkonten mit Hilfe einer Software-Einheit.

Analog zu einem Konto (als Objekt der realen Welt) soll ein Software-Objekt konto konzipiert werden. Das folgende Ablaufprotokoll verdeutlicht die Arbeitsweise eines Software-Objekts konto:

Ablaufprotokoll

Das Software-Objekt verwaltet Daten zu bestimmten Eigenschaften. Im vorliegenden Fall sind das die Kontonummer, der aktuelle Kontostand und der Kontoinhaber. Das Software-Objekt konto nutzt hierzu die Variablen nr, stand und inhaber.

Das Software-Objekt stellt Operationen zur Verarbeitung der verwalteten Daten bereit. Im vorliegenden Fall sind das die Operationen einen Betrag einzahlen und einen Betrag auszahlen, die durch die Prozeduren einzahlen(...) und auszahlen(...) 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.

Ganz praktisch, Software-Objekte genau so zu konzipieren wie entsprechende reale Objekte, oder?

Es folgen jetzt Präzisierungen der zentralen Konzepte.

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 - Prozeduren oder Funktionen 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 konto zunächst im Zustand

{konto: nr -> 234126, stand -> 2380.0, inhaber -> ...}.

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

{konto: nr -> 234126, stand -> 2130.0, inhaber -> ...}.

Den Zustand eines Objekts verdeutlicht man oft mit einem Objektdiagramm:

Objektdiagramm

Zugriff auf Attribute

Den Wert eines Attributs erhält man (solange keine besonderen Maßnahmen getroffen sind) durch einen Ausdruck der folgenden Gestalt:

objekt.attribut

Befindet sich beispielsweise das Objekt konto im Zustand

{konto: nr -> 234126, stand -> 2380.0, inhaber -> ...},

so liefert der Aufruf konto.stand den Wert 2380.0.

Das folgende Ablaufprotokoll verdeutlicht die Abarbeitung einer Zuweisung, bei der ein lesender und ein schreibender Zugriff auf ein Attribut erfolgt.

{konto: nr -> 234126, stand -> 2380.0, inhaber -> ...}
konto.stand = konto.stand + 100.0
{konto: nr -> 234126, stand -> 2480.0, inhaber -> ...}

Aktivierung von Methoden

Eine Methode wird durch eine Anweisung der folgenden Gestalt aktiviert:

objekt.methode

Das Objekt objekt wird hierdurch aufgefordert, die Methode methode auszuführen.

Das folgende Ablaufprotokoll verdeutlicht eine solche Aktivierung von Methoden im Kontext Kontoverwaltung.

{konto: nr -> 234126, stand -> 2380.0, inhaber -> ...}
konto.auszahlen(450.0)
{konto: nr -> 234126, stand -> 1930.0, inhaber -> ...}
konto.einzahlen(1000.0)
{konto: nr -> 234126, stand -> 2930.0, inhaber -> ...}

Quellen

X

Fehler melden

X

Suche