Informatikmaterialien 
von Tino Hempel

Startseite | Informatik | Physik | Mathematik | Sonstiges |

| Inhalt | Vorherige Seite | Nächste Seite | 


Richard-Wossidlo-Gymnasium Ribnitz-Damgarten
Fachbereich Informatik


Objekt und Klassen 
(Konzept von Stifte und Mäuse)


Objekte, Attribute, Nachrichten, Dienst, Auftrag, Anfrage, Methode

Im Abschnitt Datenbanken ist der Begriff der Entität wie folgt eingeführt worden: Eine Entität ist ein eindeutig identifizierbares Objekt der realen Welt. In der Softwareentwicklung sind ebenfalls Objekte mit ihren Eigenschaften interessant. 

Soll etwa ein neues James Bond-Spiel auf dem Computer programmiert werden, so benötigt man (sicherlich) das Objekte "James Bond".

Ein Objekt kann z. B. eine Person, ein Subjekt, ein Ereignis, ein Prozess oder ein Begriff sein. Die Objekte werden durch ihre Eigenschaften (Attribute) bestimmt. Die bei einer bestimmten Objekt auftretenden Werte sind Attributwerte

Objekt: James Bond; 
Attribute: Name, Vorname, Dienstnummer, Waffe, ... 
Attributwerte: Bond, James, 007, Walther PPK, ...

Diese bisherige Sichtweise ist allerdings unvollständig. Das Objekt James Bond besitzt nicht nur Eigenschaften, sondern auch Fähigkeiten bzw. Verhalten. Es kann z. B. laufen, schlafen, essen, trinken usw. 

Objekt: James Bond; 
Attribute: Name, Vorname, Dienstnummer, Waffe, ... 
Attributwerte: Bond, James, 007, Walther PPK, ...
Fähigkeiten: laufen, schlafen, essen, trinken, ermitteln ...

Damit ein Objekt seine Umwelt und damit andere Objekte wahrnehmen kann, muss es auf Nachrichten reagieren können. Diese Nachrichten führen beim Empfängerobjekt entweder dazu 

James Bond muss auf die Nachricht vom Objekt M reagieren können. Dies führt entweder dazu einen Auftrag auszuführen oder die Anfrage zu beantworten.

Ein Auftrag oder eine Anfrage ist nur sinnvoll, wenn das Empfängerobjekt die Fähigkeit besitzt, diesen zu erfüllen/beantworten. Das Empfängerobjekt muss eine entsprechenden Dienst zur Verfügung stellen. Ist der Auftrag erledigt, muss eine Bestätigungsmeldung erfolgen. Die Anfrage endet stets mit einer Nachricht an das Frageobjekt. 
Welchen Dienst/welche Methode ein Objekt intern nutzt, um die Nachricht zu verarbeitet, ist nicht relevant.  

Ein Objekt ist die Repräsentation einer identifizierbaren, aus einem bestimmten Kontext isolierbaren Einheit, die durch einen Namen, durch Zustände und ein bestimmtes Verhalten beschrieben ist. 

Die Zustände (Eigenschaften, Attribute) können nur mittels der Dienste des Objekts (Anfragen und Aufträge) manipuliert werden (Prinzip der Datenkapselung).  

Die Zustände eines Objekts werden durch seine Attribute repräsentiert. Die Dienste legen fest, auf welche Nachrichten ein Objekt reagieren kann. 

in Anlehnung an: Gall, H.; Hanswirth, M.; Klösch, R.: Objektorientierte Konzepte in Smalltalk, C++, Objective-C, Eiffel und Modula-3 in: Informatik-Spektrum Band 18 Heft 4 (August 1995), Seite 195f

Veranschaulichung der Datenkapselung

Auf die Eigenschaften des Objektes James Bond kann man nicht direkt zugreifen. Nur über den Auftrag benutzeWaffe bzw. die Anfragen nenneWaffe, nenneChef, nenneName und nenneNr. können die Attribute manipuliert werden. Es ist nicht möglich, den Namen des Chefs zu ändern, da hierfür kein Dienst zur Verfügung gestellt wird.

Schreibweise

Ein Objekt wird durch die Angabe des Namens und des Auftrags/Anfrage notiert. Dabei werden die Frage bzw. der Auftrag in Klammern gesetzt. 

James_Bond.ermittle_gegen(Goldfinger) 

Klassen, Klassendiagramm, OOM

In Analogie zu dem Begriffe Entitätstyp der relationalen Datenbanken definiert man nun den Begriff der Klasse. 

Eine Klasse ist die Abstraktion von Objekten. Die Einteilung in Klassen geschieht auf Grund der Eigenschaften oder der Fähigkeiten, welche die zu einer Klasse gehörenden Objekte besitzen. Die Einteilung in Klassen kann je nach Person, Lebenserfahrung oder Fragestellung unterschiedlich sein. 

Ein Exemplar einer Klasse ist ein Objekt bzw. eine Instanz. Eine Klasse bietet Dienste an, die von Objekten genutzt werden können. Die Klasse stellt also eine Schablone dar, nach der Objekte (dieser Klasse) erzeugt werden können. 

in Anlehnung an: Gall, H.; Hanswirth, M.; Klösch, R.: Objektorientierte Konzepte in Smalltalk, C++, Objective-C, Eiffel und Modula-3 in: Informatik-Spektrum Band 18 Heft 4 (August 1995), Seite 195f

James Bond könnte ein Objekt der Klasse Geheimagenten sein. 

Grafische Schreibweisen für Klassen und Objekte

Die Klasse wird durch die Angabe aller Eigenschaften, Aufträge und Anfrage notiert. Eine gängige Darstellung einer Klasse liefert das UML-Klassendiagramm. 

Im oberen Kasten wird dabei der Name der Klasse notiert. Der zweite Kasten führt alle Eigenschaften auf. Diese können als Zahlen oder Zeichenketten hinterlegt werden. Dies muss durch die Angabe des Datentyps erfolgen. Der dritte Kasten notiert alle Aufträge und Anfragen. Aufträge werden durch ein Ausrufezeichen gekennzeichnet, Anfragen durch ein Fragezeichen. Da die Anfrage eine Antwort impliziert, muss der Antwort-Typ mit angegeben werden.

Objekte lassen sich ebenfalls in Diagrammen darstellen und beschreiben dann den momentanen zustand des Objekts.

In der objektorientierten Softwareentwicklung kommt es darauf an, die für eine Problemstellung geeigneten Objekte und Objektklassen herauszufinden und sich zu überlegen, wie diese auf einen Computer abgebildet werden können. Diesen Vorgang nennt man objektorientierte Modellierung (OOM). 



zur Startseite
© Tino Hempel 1997 - 2004 Im Web vertreten seit 1994.
Eine Internet-Seite aus dem Angebot von Tino Hempel.

Für alle Seiten gilt der 
Haftungsausschluss/Disclaimer.