18 OOP - Bestandsaufnahme und Ausblick
18.1 Was sind Klassen, was Objekte?
 
Wir haben, ohne uns um Detail zu kümmern, schon sehr häufig mit Klassen und Objekten gearbeitet. Hier wollen wir über das bereits Gesagte eine kleine Bestandsaufnahme machen. Mit der objektorientierten Modellierung (OOM), die erst die Tragweite der der objektorientierten Programmierung (OOP) aufzeigt, werden wir uns später beschäftigen.

Von Platon (427 - 347 v. Chr.), dem griechischen Philosophen der Antike satmmt sinngemäß folgender Satz: Alle konkreten Gegenstände und Sachverhalte, die der Mensch mit seinen Sinnen wahrnimmt, sind pure (Ab)bilder jener Urbilder und werden nur erkannt, indem sie als eben solche (Ab)bilder identifiziert werden.

oder: Ein "java-sprechender" Platonschüler
Alles was der Mensch wahrnimmt sind Objekte, also Instanzen von Klassen
(= Ideen).

 

Was ist eine Klasse, was ist ein Objekt

Am Beispiel der Klasse Mathematik.java haben wir zum ersten mal gesehen, wie man eigene Klassen schreibt. Diese Klasse Mathematik.java zeigt aber lediglich, wie man mit einer Klasse Übersicht und Ordnung schaffen kann. Was aber Klassen in OOP (Objekt-Orientierte-Programmierung) tatsächlich ausmachen, wurde kaum sichtbar.
Wenn ein Kind sagt, dass der vor ihm stehende Dackel "Fifi" ein Hund ist, dass aber auch der Schäfer "Fakir" ein Hund ist, dann hat das Kind i.P. gelernt, zwischen Klassen und Objekten im Sinne von OOP zu unterscheiden. Den "Hund" gibt es tatsächlich nicht, der ist lediglich eine Abstraktion eine Idee. Wirklich existieren nur "Fifi" und "Fakir". In OOP sagen wir auch "Fifi"  und "Fakir" sind Instanzen der Klasse 'Hund'. 
Etwas allgemeiner können wir sagen: Klassen werden dazu benutzt, Dinge der realen und der gedachten Welt zu modellieren. Solche "Dinge" können Mitarbeiter in einer Firma sein, oder eine komplizierte Gleichung in der Mathematik.

a)

 

Attribute, Methoden Ein Stempel enthält den "Bauplan" für einen Mitarbeiter. Er entspricht der Klasse; die Bilder, die man beim "Stempeln" erhält, entsprechen den Objekten. Wir sehen: Aus einer Klasse kann man im Prinzip beliebig viele Objekte erzeugen. Eigenschaften, die den konkreten "Zustand" eines Objektes beschreiben nennen wir Attribute. Sie sind wie Variable, die Werte haben. In unserem Beispiel, wären das etwa die konkreten Namen und das jeweilige Gehalt. Jedes aus einer Klasse erzeugte Objekt hat somit seine eigenen Attribute. 1)
Methoden (genauer: Objektmethoden) werden dazu benutzt, Zustände von Objekten zu verändern, das heißt die Werte ihrer Attribute zu verändern, Werte zu setzen oder abzufragen.
 
Zusammenfassung Klassen sind Baupläne von Dingen. Objekte sind Instanzen, die man von diesen Bauplänen erzeugen kann. Jedes Objekt hat seine Attribute, die in seiner Klasse angelegt sind. Die Attribute haben Werte, sie beschreiben den Zustand eines Objektes. Einen Attributwert kann mit Hilfe von Methoden setzten, lesen oder verändern.
Fussnote 1) Klassenattribute gehören allerdings zur Klasse und nicht zum Objekt. Man erkennt sie an dem vorgestellten static. Man vergleiche dies mit den bereits kennen gelernten Klassenmethoden. (zurück)

a) Die Abbildungen stammen aus dem:

 


Lehrbuch Grundlagen der Informatik
Helmut Balzert
Spektrum Verlag ISBN 3 8274 - 0358 - 8

zu 18.2 Klasse Punkt: Konstruktoren,  Attribute, Methoden
zur Startseite www.pohlig.de (C) MPohlig 2004