22.08.2013 Aufrufe

Grundlagen der Informatik I “Programmierung”

Grundlagen der Informatik I “Programmierung”

Grundlagen der Informatik I “Programmierung”

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

(character), reelle Zahlen in einfacher und doppelter Präzision) o<strong>der</strong> aus Verweisen bestehen zu lassen. Fel<strong>der</strong><br />

o<strong>der</strong> Listen als Teile von Objekten zu verwenden ist nicht möglich. Stattdessen muß aus dem Objekt heraus<br />

auf das Feld o<strong>der</strong> die Liste verwiesen werden.<br />

Dieses Merkmal <strong>der</strong> Sprache Eiffel führt zu einer sehr dynamischen Natur von Programmen: auf Objekte angewandte<br />

Operationen führen zur Erzeugung neuer Objekte und Verweise; Verweise werden auf an<strong>der</strong>e Objekte<br />

umgelenkt o<strong>der</strong> zu leeren Verweisen, usw. Dadurch entsteht ein hohes Maß von Flexibilität. Allerdings würde<br />

auch die Gefahr völlig unkontrollierbarer Programmabläufe entstehen, wenn die Verwendung von Verweisen<br />

nicht durch ein Strukturierungskonzept eingeschränkt würde. Diese Strukturierung ergibt sich automatisch<br />

aus <strong>der</strong> Tatsache, daß Objekte beschrieben werden müssen, um für das zu entwerfende System benutzbar zu<br />

sein.<br />

3.2 Klassen<br />

Wie beschreibt man also Objekte? Die Antwort hierauf ergibt sich aus <strong>der</strong> Anfor<strong>der</strong>ung, daß ein Softwaresystem<br />

nicht nur für die Verarbeitung individueller Objekte (z.B. nur für die Verarbeitung <strong>der</strong> in Abbildung 3.3<br />

repräsentierten beiden Bücher) geschrieben wird, son<strong>der</strong>n alle Objekte verarbeiten können muß, die gewisse<br />

gemeinsame Strukturen haben wie z.B. alle Objekte, die ein Buch beschreiben. Das bedeutet, daß wir mehr<br />

an Klassen von Objekten interessiert sind als an Einzelobjekten. Die Beschreibung einer Klasse liefert uns<br />

somit eine Beschreibung <strong>der</strong>jenigen Eigenschaften, die alle uns interessierenden Objekte gemeinsam haben<br />

und ermöglicht es uns, die Beson<strong>der</strong>heiten eines Individuums außer Acht zu lassen.<br />

Der Unterschied zwischen einer Klasse und einem Objekt ist <strong>der</strong>selbe wie <strong>der</strong> zwischen einer Menge und ihren<br />

Elementen (o<strong>der</strong> auch zwischen Datentypen und ihren Elementen). Die Klassen sind die abstrakten Konzepte,<br />

auf <strong>der</strong>en Beschreibung ein Programm aufgebaut wird, die Objekte sind die konkreten Ausprägungen <strong>der</strong><br />

Konzepte, die beim tatsächlichen Ablauf des Programms eine Rolle spielen. Während des Ablaufs bleiben<br />

die Klassen und das einmal geschriebene Programm unverän<strong>der</strong>lich, während sich die individuellen Objekte<br />

durchaus än<strong>der</strong>n. Objektorientierte Sprachen wie Eiffel verwenden daher den Begriff “Klasse” um solche<br />

Datenstrukturmengen zu bezeichnen, die durch gemeinsame Eigenschaften charakterisiert sind.<br />

Wie charakterisiert man nun eine Klasse von Objekten? Man könnte dafür irgendeine feste Darstellung wählen.<br />

So könnte man zum Beispiel die Klasse <strong>der</strong> Autoren darstellen als Zeichenketten, die an den ersten 20 Stellen<br />

den Nachnamen enthalten, die nächsten 25 Stellen die Vornamen, dann je 4 Stellen für Geburts- und Todesjahr,<br />

und dann 15 Stellen für die Nationalität. Unser Autorenobjekt in Abbildung 3.3 wäre dann<br />

‘‘Meyer Bertrand 1946????Frankreich ’’<br />

Diese Darstellung ist sehr effizient zu verarbeiten und findet daher immer noch Verwendung in vielen Softwareprodukten,<br />

die Personendaten verarbeiten müssen. Lei<strong>der</strong> ist sie extrem unflexibel in Fällen, wo Personendaten<br />

nicht in das vorgesehene Schema passen wie z.B. bei<br />

‘‘Kreitz Christoph Sebastian Maxim1957????Deutschland ’’<br />

Da die Vornamen in diesem Falle mehr als 25 Zeichen einnehmen, müssen sie abgeschnitten werden, da sonst<br />

das Geburtsdatum überschrieben würde. Man könnte sich nun damit behelfen, daß man ab sofort 30 o<strong>der</strong> gar<br />

40 Zeichen zuläßt. Dies aber ist keine gute Lösung, da nun das gesamte Programm umgeschrieben werden muß<br />

und alle bisherigen Daten entsprechend durch Einfügen von Leerzeichen angepaßt werden müssen. Bedenkt<br />

man, daß heutzutage gut ein Fünftel aller Modifikationen von Programmen aufgrund einer Än<strong>der</strong>ung <strong>der</strong><br />

Datenformate durchgeführt werden müssen, so ist eine <strong>der</strong>maßen implementierungsabhängige Beschreibung<br />

<strong>der</strong> Klasse “Autoren” ausgesprochen ungeeignet. Sie ist überspezifiziert.<br />

Auch die Beschreibung <strong>der</strong> Klasse als Verbund von drei Zeichenketten beliebiger Länge (für Name, Vorname,<br />

Nationalität) und zwei ganzen Zahlen (für Geburts- und Todesjahr) ist immer noch zu nahe an <strong>der</strong><br />

Implementierung, da z.B. für noch lebende Autoren eine spezielle Codierung vereinbart werden muß.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!