Thread Was ist ein Objekt: Suche erläuternde Definition (21 answers)
Opened by pktm at 2004-03-04 13:15

Strat
 2004-03-04 20:15
#80560 #80560
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
also ich finde diese ganzen wunderbaren fremdwoerter einfach toll, und unter instanz einer klasse konnte ich mir noch nie was vorstellen (habe es damals auf der uni aber bei den pruefungen auch wunderbar runtergebetet...). deshalb mal ein Versuch einer Erklaerung von OOP auf deutsch:

Ein Objekt ist ein Container, in dem Daten gespeichert werden können, und bietet zusaetzlich einen Zugriffsmechanismus auf diese Daten. Die Daten werden Objektattributwerte genannt. Die Container, in denen diese Daten gespeichert werden, nennt man Objektattribute. Um auf diese Attribute und Attributwerte zugreifen zu können, gibt es Methoden, die als Schnittstellen zu den Daten dienen. Objekte und Methoden gehören zu einer Klasse. Eine Klasse besteht aus einem (oder mehreren) Objekt(en) mit seinen Daten und den darauf anwendbaren Methoden, sowie einigen Methoden, die nicht auf ein Objekt angewendet werden, sondern auf die Klasse (=Klassemmethoden, z.B. die Erzeugung eines neuen Objektes)

Warum das Ganze?

Kapselung von Daten und Zugriff: Wenn man Daten und den Zugriffsmechanismus auf die Daten kapseln kann, braucht man nicht zu wissen, wie ein Objekt Daten speichert, sondern kann über spezifizierte Schnittstellen (=Methoden) auf die Daten zugreifen. Wenn z.B die Daten ab sofort nicht mehr in einer Hashreferenz, sondern in einer Datei gespeichert werden, müssen nur die Methoden angepasst werden, aber die Schnittstellen zu den Daten bleiben gleich. Einem Programm kann es somit egal sein, wie was intern gespeichert ist, solange es genauso wie vorher (nämlich über die Objektmethoden) darauf zugegreifen kann. Durch diese groessere Abstraktion durch die klaren Schnittstellen wird es leichter, Code wiederzuverwenden.
Vererbung von Funktionalität: wenn die Funktionalität einer Klasse nicht mehr ausreicht und erweitert werden muß, kann man eine neue Klasse generieren, die die Funktionalität der alten Klasse erbt und erweitert oder überschreibt. Dies hat den Vorteil, daß die gesammte geerbte Funktionalität nicht nochmal gecoded werden muß, sondern nur die erweiterte oder überschriebene hinzugefuegt werden muss. Einen solchen Mechanismus nennt man Vererbung.


Objektorientierte Programmierung zahlt sich normalerweise erst ab größeren Mengen Code aus (sagen wir mal so ab 1000 Zeilen Code). Objektorientierte Programmierung macht auch ein Programm in der Regel ein klein wenig langsamer als mit prozeduraler Programmierung. Durch die bessere Kapselung des Codes wird jedoch die Entwicklungsgeschwindigkeit gesteigert, die Wartbarkeit und Wiederverwendbarkeit erhoeht. Und da die Entwicklungszeit meistens teurer ist als eine schnellere Hardware, rentiert sich OOP in der Regel schon.

Wie korrekt ist sowas vom Standpunkt der Theorie her?\n\n

<!--EDIT|Strat|1078424258-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/

View full thread Was ist ein Objekt: Suche erläuternde Definition