Verfasst: 29.08.2006 11:36
Kaeru Gaman hat geschrieben:ja und nein.
man muss schon einiges drumrum stricken, um klassen aufzubauen, aber es geht grundsätzlich.
http://www.purebasic-lounge.de/viewforum.php?f=96
Das deutsche PureBasic-Forum
https://www.purebasic.fr/german/
Kaeru Gaman hat geschrieben:ja und nein.
man muss schon einiges drumrum stricken, um klassen aufzubauen, aber es geht grundsätzlich.
http://www.purebasic-lounge.de/viewforum.php?f=96
Da wäre noch Überladung fälligPrinzipielll wäre es möglich eine Objektorientierte Sprache mit einem präprozessor zu erzeugen, die C++ in nichts nachsteht.
Von Methoden habe ich gar nicht gesprochen, diese müssen selbstverständlich global zugänglich sein können, anders aber die Eigenschaften, also die Klassenvariablen. Diese dürfen nur über Get-/Set - Funktionen angesprochen werden, falls die Sprache wirklich objektorientiert sein soll. So habe ich das jedenfalls mal gelernt.Zaphod hat geschrieben:Bei C++ gibt es dafür scope Modifyer. Es gibt Private, Öffentliche und inerhalb einer vererbung sichtbare eigenschaften und methoden... eine objektorientierte sprache die ausschließlich private eigenschaften und methoden hat währe so sinnvoll wie write-only speicher.
Es spricht auch nichts dagegen, dass man unkritische eigenschaften direkt zugänglich macht. Wenn das gegen die Objektorientiertheit verstieße, dann gäbe es keine objektorientierten Sprachen. Wenn ich mich richtig erinnere gibt es die sogar bei smalltalk, der Mutter aller objektorientierten Sprachen.
Objektorientiertheit ist auch nicht das gleiche wie datenkapselung, auch wenn viele schlechtere Bücher das immer wieder behaputen. Es muß nur die Möglichkeit zur kapselung geben, nicht den Zwang.
Da hole ich mir doch gleich mal Alan Kay zu Hilfe, der den Begriff der Objektorientiertheit prägte:Zaphod hat geschrieben:@Ligatur:
Die *möglichkeit* zur Kapselung muß da sein, aber nicht der *zwang*. Kapselung von daten ist überall da sinnvoll, wo Konflikte durch unqualifiziertes herumfummeln an internen zuständen entstehen können.
Es ist aber nicht sehr zweckmäßig, wenn eine Programmiersprach dich auch da zu einem Getter/Setter zwingt, wo die zuordnung nur durch eine einzelne zuweisung/einem einzelnen return erfolgt.
Darum macht das auch keine objektorientierte sprache, weil der prinziepielle zwang vollkommener quatsch wäre.
Siehe http://userpage.fu-berlin.de/~ram/pub/p ... mierung_deBei der objektorientierten Programmierung beschreiben Programme, wie Nachrichten zwischen Objekten ausgetauscht werden. Ein Objekt ist ein Baustein, der Zustände und Prozesse enthält, die er schützt und versteckt und auf den von außen nur durch Austausch von Nachrichten zugegriffen werden kann. Dabei entscheidet ein Objekt selber, wie es auf eine bestimmte Nachricht reagiert. Es muß möglich sein, daß erst äußerst spät (während des Programmablaufs) festgelegt wird, welches Objekt eine bestimmte Nachricht erhält (späte Bindung). (frei nach [0] und [1])
Objektorientierte Programmierung im ursprünglichen Sinne ist nach Kay ist zur Zeit (2003) nur in der Programmiersprache Smalltalk und in der Programmiersprache Common Lisp möglich. Andere, oft als „objektorientiert“ bezeichnete Programmiersprachen, wie die Programmiersprache Java oder die Programmiersprache C++, sind keine objektorientierten Programmiersprachen im Sinne Alan Kay s.