# Was bedeutet Objektorientiertes Programmieren?



## blunznwurscht (24. November 2002)

Tag

Also mich würde interesiieren wo eigentlich der Unterschied zwischen "konventionellem" und objektorientiertem Programmieren liegt. (Und wo man im Internet eine Einführung in dieses Gebiet bekommt)



Mfg

blunznwurscht


----------



## Christoph (24. November 2002)

Eine objektorientirte Programmiersprache ist z.b. JAVA,  c++ oder Pascal. Die erste OOP war SIMULA und wurde so ca. um 1967 entwickelt.(schlagt mich wenn das nicht stimmt *g*)

OOP ist die Bezeichnung für einen Programmieransatz bei dem Daten und die auf diese Daten anzuwendenden Operationen als Einheiten, so genannte *Klassen*, betrachtet werden.

Eine Besonderheit des objektorientierten Ansatzes ist die Möglichkeit, durch Vererbung aus einer Klasse eine neue Klase mit veränderten Eigenschaften zu erzeugen.

Was nun einen konventioenelle Programmiersprache ist kann ich dir auch nicht sagen 

ps. JAVA ist objektorientiert, JavaScript (nicht gleich JAVA) ist *objektbasiert*.


----------



## blunznwurscht (24. November 2002)

Ja und ist das eine besser als das andere oder ist der Unterschied nicht soooo dramatisch?


----------



## Robert Martinu (24. November 2002)

Hängt davon ab was du vor hast.
Je grösser ein Projekt wird, desto mehr profitierst du von OOP.
Zum Beispiel erlaubt die Vererbung aus einer Vorlage für ein Fenster jede für eine Benutzeroberfläche nötige Ableitung zu erstellen, du musst dabei nur die Teile neu schreiben die sich zwischen den versch. Versionen wirklich ändern.
Gleichzeitig macht diese Abstraktion das Warten&Pflegen einfacher - bei einer prozderalen Programmiersprache musst du dafür sorgen das Daten und die Funktionen die sie bearbeiten zusammenkommen, die OO nimmt dir diese Arbeit ab.



Prozederale Programmierung ist vor allem dann interessant wenn man entweder sehr kurze Programme schreibt oder die Resourcen extrem knapp sind respektive du sehr viel zu rechnen hast.


----------



## Dario Linsky (24. November 2002)

> z.b. JAVA, c++ oder *Pascal*.


Normales Pascal eher nicht, höchstens Object Pascal (die Sprache aus Delphi).

Bei OOP gibt es wie gesagt schon verschiedene Klassen, die man normalerweise bequem übernehmen kann. Wenn also irgendjemand eine Klasse geschrieben hat, die man gerade gut gebrauchen könnte, dann kann man diese einfach als Grundlage nehmen. Man leitet eine eigene Klasse davon ab, fügt noch ein paar eigene Merkmale ein und programmiert selbst weiter.
Klassen verhalten sich gegenüber Objekten so ähnlich wie Datentypen gegenüber Variablen. Also kann man ein Objekt erzeugen, dass das eine "Instanz" einer bestimmten Klasse ist. Genauso wie man eine Variable erzeugt, die dann eine Instanz eines Datentyps ist.
Im Gegensatz zu einem Struct besteht eine Klasse nicht nur aus einzelnen Variablen, sondern kann auch ein ganzes Programm enthalten. Dazu kommt noch, dass man bestimmte Teile einer Klasse mit unterschiedlichen Rechten belegen kann. Dadurch kann man also einige Merkmale der Klasse vor Zugriffen von ausserhalb schützen.
Das hat den Vorteil, dass man grössere Projekte leichter pflegen kann.


----------



## Christoph (24. November 2002)

> Normales Pascal eher nicht, höchstens Object Pascal (die Sprache aus Delphi).


Besserwisser


----------



## Dario Linsky (24. November 2002)

> Besserwisser


Moderatoren im Delphi-Forum wissen sowas eben.


----------



## Christoph (24. November 2002)

was du nicht sagst


----------

