30.06.2013 Aufrufe

Softwareentwicklung in C++ - ASC

Softwareentwicklung in C++ - ASC

Softwareentwicklung in C++ - ASC

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

156 8. Objektorientierung Allgeme<strong>in</strong><br />

unterscheidet man im täglichen Leben völlig <strong>in</strong>tuitiv zwischen solchen, die<br />

<strong>in</strong> der Natur e<strong>in</strong>es Objekts liegen (z.B. hat e<strong>in</strong> Mensch e<strong>in</strong>en Kopf, e<strong>in</strong>en<br />

Rumpf, Arme, Be<strong>in</strong>e, etc.) und solchen, die derzeitig gültige, besondere Ausprägungen<br />

von möglichen naturgegebenen Eigenschaften s<strong>in</strong>d (z.B. gute oder<br />

schlechte Laune). Objekte können Aktionen ausführen, entweder selbsttätig<br />

oder <strong>in</strong> Verb<strong>in</strong>dung mit anderen Objekten (z.B. e<strong>in</strong> Mensch fährt mit e<strong>in</strong>em<br />

Auto). Um e<strong>in</strong>e Aktion auszuführen gibt es Voraussetzungen, z.B. kann nur<br />

jemand mit e<strong>in</strong>em Auto fahren, der auch weiß, wie man das tut. Das bedeutet,<br />

dass die Fähigkeit, mit e<strong>in</strong>em Auto zu fahren, ke<strong>in</strong>e naturgegebene<br />

Eigenschaft e<strong>in</strong>es jeden Menschen ist.<br />

Abstrahiert man diese Betrachtungen und versucht e<strong>in</strong> allgeme<strong>in</strong>es Ausdrucksmittel<br />

für solche Denkmuster zu f<strong>in</strong>den, dann landet man pr<strong>in</strong>zipiell<br />

e<strong>in</strong>mal bei folgendem Ergebnis:<br />

• Es gibt Klassen. Diese fassen allgeme<strong>in</strong> alle naturgegebenen Möglichkeiten<br />

e<strong>in</strong>er bestimmten Gruppe von Objekten zusammen.<br />

• Es gibt Objekte. Diese s<strong>in</strong>d e<strong>in</strong>zelne Instanzen von bestimmten Klassen<br />

mit e<strong>in</strong>em bestimmten Status. Damit stellt e<strong>in</strong> Objekt e<strong>in</strong>e besondere<br />

Ausprägung der durch die Klasse vorgegebenen Möglichkeiten dar.<br />

Nach diesem Begriff wäre zum Beispiel e<strong>in</strong> Mensch aus dem zuvor besprochenen<br />

Beispiel e<strong>in</strong>e Klasse, die alle se<strong>in</strong>e naturgegebenen Eigenschaften und<br />

Fähigkeiten beschreibt. Die Person, die <strong>in</strong> der Früh aufsteht und zur Arbeit<br />

geht bzw. fährt, ist e<strong>in</strong> e<strong>in</strong>e Instanz e<strong>in</strong>es Menschen, also e<strong>in</strong> Objekt. Die besonderen<br />

Eigenschaften, die diese Person aus der Fülle der Möglichkeiten des<br />

Menschen hat, s<strong>in</strong>d durch die Instanz bestimmt. Zum Beispiel kann sich unsere<br />

Person (hoffentlich :-)) die Zähne putzen. Auch e<strong>in</strong> neugeborenes K<strong>in</strong>d<br />

ist e<strong>in</strong>e Person und damit der Klasse Mensch zugehörig. Mit dem Zähne<br />

putzen ist es allerd<strong>in</strong>gs beim Neugeborenen noch nicht so weit her.<br />

Damit wären wir nun endlich bei den Grundkonstrukten von OO Programmiersprachen<br />

gelandet, die es erlauben, e<strong>in</strong>e für den Menschen natürliche<br />

Modellbildung vorzunehmen. In allen OO Programmiersprachen gibt es<br />

Klassen und Objekte mit genau der Bedeutung, wie sie soeben besprochen<br />

wurde.<br />

Vorsicht Falle: Leider zieht sich durch die gesamte Literatur e<strong>in</strong>e völlig<br />

verwaschene Def<strong>in</strong>ition durch, <strong>in</strong> der die Begriffe Klasse und Objekt nur allzu<br />

oft als Synonym verwendet werden. Dies ist grundfalsch! Ich möchte<br />

e<strong>in</strong>dr<strong>in</strong>glichst davor warnen, die Begriffe Klasse und Objekt mite<strong>in</strong>ander zu<br />

vermischen, denn <strong>in</strong> diesen Begriffen liegt wichtige Semantik, die sich im Programmdesign<br />

niederschlägt und damit e<strong>in</strong> völlig falsches bzw. unverständliches<br />

Design ergibt!<br />

Wenn e<strong>in</strong>e Klasse e<strong>in</strong>e Eigenschaft hat, so ist dies etwas Naturgegebenes,<br />

was alle ihre Instanzen, also Objekte, <strong>in</strong> ihren Grundanlagen besitzen.<br />

Wenn e<strong>in</strong> Objekt e<strong>in</strong>e Eigenschaft hat, so ist dies e<strong>in</strong>e besondere Ausprägung<br />

bzw. e<strong>in</strong> Status, der sich nur auf diese e<strong>in</strong>e Instanz bezieht. E<strong>in</strong>e

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!