Objekte und Klassen

Aus Informatik
Wechseln zu: Navigation, Suche

Eine objektorientierte Programmiersprache unterstützt die Datenabstraktion, indem sie Sprachelemente zur Definition von Klassen zur Verfügung stellt. Klassen beschreiben die Eigenschaften von Objekten und legen mit den Methoden fest, welche Aktionen die Objekte ausführen können. In der objektorientierten Programmierung spricht man von Attributen (=Eigenschaften) und Methoden (=Aktionen). Ein konkretes Objekt wird nach dem „Muster“ der Klasse erzeugt und bildet eine Instanz der Klasse. Es ist also nur eine Variable des Typs einer bestimmen Klasse.

Sprechen wir Menschen beispielsweise von einem Auto, so sprechen wir über einen übergeordneten Begriff: über verschiedene Autotypen. Dieser Überbegriff beschreibt eine Klasse, die verschiedene Objekte beinhaltet. Diese Objekte sind z.B. Sportwagen, Van, Cabrio oder Limousine.


Attribute und Methoden

Methoden und Attribute in einer Grafik dargestellt. Um die Grafik vollständig anzuzeigen klicken Sie bitte auf das Bild.

Die Attribute in einem Objekt werden in der Regel so definiert, dass man diese in dem Anwendungsprogramm selbst nicht direkt ändern kann. Um auf sie zuzugreifen, gibt es Methoden. Mit ihrer Hilfe können die Werte der Attribute geändert oder abgerufen werden. Methoden werden im Objekt also so definiert, dass auch außenstehende Programmteile auf diese zugreifen können.


Bei einem Auto ist jedem klar welche Eigenschaften und Fähigkeiten zu einem Objekt gehören, dass ein Auto ist. Attribute sind etwa Farbe, Geschwindigkeit, Motorleistung, etc. Die Methoden eines Autos sind unter anderem Beschleunigen, Bremsen und Lenken.

Man benutzt also die Methode „beschleunigen“, um die Geschwindigkeit zu ändern.

Schutzklassen

Die Attribute in einem Objekt werden in der Regel so definiert, dass man diese in dem Anwendungsprogramm selbst nicht direkt ändern kann. Um auf sie zuzugreifen, gibt es Methoden. Mit ihrer Hilfe können die Werte der Attribute geändert oder abgerufen werden. Methoden werden im Objekt also so definiert, dass auch außenstehende Programmteil auf diese zugreifen können. Die wichtigsten Klassen stellen „private“ und „public“ dar.

  • Private: Variablen und Methoden sind innerhalb des Objekts verfügbar. Sie sind damit vor dem direkten, ungewollten, unkontrollierten Zugriff von außen geschützt.
  • Public: Auf die Variablen und Methoden des Objekts kann auch von außerhalb zugegriffen werden.
  • Published: Wie Schutzklasse public. Zusätzlich werden Laufzeitinformationen gegeben, die von dem Objektinspektor angezeigt werden können.
  • Protected: Zugriff auf Variablen und Methoden kann nur über Methoden der eigenen Klasse und der daraus abgeleiteten Unterklassen erfolgen.

Constructor und Destructor

Wie bereits erwähnt ist der Zugriff auf die Daten eines Objekts im Allgemeinen nicht direkt, sondern in kontrollierter Weise über die Methoden realisiert. Da eine Klasse auch die Erzeugung („construction“) und die Zerstörung („destruction“) eines Objekts festlegt, kann so folgendes garantiert werden:

  • Nach dem Erzeugen eines Objekts sind die Daten stets mit vernünftigen Anfangswerten versehen.
  • Fehlerhafte oder unzulässige Zugriffe werden frühzeitig durch die Methoden abgefangen.
  • Sofern ein Objekt im weiteren Programmverlauf nicht mehr benötigt wird, kann es in geordneter Weise „zerstört“ werden. Beispielsweise kann es nötig sein, geöffnete Dateien zu schließen, dynamisch reservierten Speicher wieder freizugeben oder Zeiger auf einen Pseudowert wieder zurückzusetzen.