Klaus Junge: Was ist ein Objekt?

Beitrag lesen

Hallo Antje,

Wie definiert man ein Objekt konkret?

da tu' ich mich schwer. Es gibt zwar viele Erläuterungsversuche,
aber, wie Du schon gesehen hast, landen die meist bei Aufzählungen.
Das mag auch wieder durch den (unsäglichen) Versuch bedingt sein
eine ganze Entwicklung und ihren Kontext in ein 'Single-Statement'
zu pressen, nach dem Motto 'OOP ist Watsch-Platsch'.

Ich hab' OOP zwar (noch) nicht verinnerlicht, wird wohl auch nichts
mehr, eine klieine Gedankenkrücke hab' ich mir aber aus der Entwick-
lung dahin abgeleitet:

Früher hat man sich überlegt wie man eine Fragestellung angeht und
in guter Mathematikermanier hat man dann einen Algorithmus entwickelt.
Eine Programmiersprache der 60er war ALGOL = Algorithmic Language.
Da man das auch als Beschreibung von Prozessen/Prozeduren auffassen
konnte, auch prozedurales Programmieren. Daher dann auch der Ent-
wicklungsschritt der Makros zu den Prozeduren und Funktionen.

Die Projekte wurden größer und auch die Anzahl der an einem Projekt
beteiligten Programmierer. Jeder hatte sein Inselchen zu bearbeiten
und das Zusammenfügen ging natürlich zunehmend schlechter.
Auch die kleinste Änderung an der Datenstuktur bedingte eine regel-
mäßige Überarbeitung des Algorithmus und damit des gesamten Programms.

Daraufhin kam die 'Datenkapselung' in Mode, ein Programmierer sollte
nicht wissen bzw nicht wissen müssen was der andere tut.
Nur seine Aufgabenstellung sollte, wie spezifiziert und in einer
Schnittstellenbeschreibung definiert ablaufen. Das war immer noch
rein algorythmisch gedacht.

Wenn jetzt eine Änderung in der Datenstruktur oder auch in der
Art der Verarbeitung nötig wurde, dann konnte man auf 'sauber'
definierte Blöcke zurückgreifen. Es lag nahe, daß man also einen
'Subprozess' dazubaute der die neuen 'Eigenschaften' bearbeitete,
neue 'Methoden' einfügte und ansonsten auf die bereits funktionierenden
Teile zurückgriff. Letzteres hat den Namen 'Vererbung' bekommen.
Anfangs waren es 'subroutines' die auf andere 'subroutines'
zurückgriffen.

Eigenschaften, Methoden und Vererbung, diese Schlagworte sind
bei der Objektorientierung standard geworden.
Die Theorie hat die Betrachtungsweisen deutlich erweitert,
die Ursprünge sind aber, in meinem Erleben, so entstanden.
Die Entwicklung ist uA auch an den Eigenschaften von Turbo-Pascal
über Turbovision nach Delphi ganz gut abzulesen.

Wie definiert man ein Objekt konkret?

Hmm, um ehrlich zu sein, keine Ahnung. Ich hab' so viele
Definitionsversuche gelesen, meistens '... ist wenn' oder
'... ist zB ...' oder auch '... nehmen wir an, daß ...'.
Letztlich hilft mir nur die Erinnerung an die Schmerzen.

Klaus

PS: Stefan hat Dir inzwischen auch einen Erläuterungsversuch mit
'Angenommen, (daß)' dargelegt. Das hilft ja auch weiter und zwar
nicht schlecht. Wie Du Dir Dein Bild zusammenschnitzt hängt aber
vor allem von Deinen ganz persönlichen Denkstrukturen ab (trivial).
Ich finde es gut, daß Du das Thema angesprochen hast!
Vielleicht lerne ja auch ich nochmal was das ist.