OOP: soll man jetzt alles in ne Klasse packen oder watt?
-
Zeus schrieb:
Ich will rüdiger, shadow, und etc.
Welchem "shadow"?
Ich habt ne Objektorientierung in C! aber halt kein OOP.
hä?
-
Ich will rüdiger, shadow, und etc.
ne freunde bereitenIch habt ne Objektorientierung in C! aber halt kein OOP.
Zwar kann Ich ja schlecht für alle sprechen, aber ich wollte lediglich zeigen, dass OOP mehr ist als eine Sammlung von Features der Sprache. C bzw. C++ habe ich schon Jahre lang nicht mehr verwendet, wodurch ich also auch klarstellen will, dass ich C in keinster Weise verteidigen will. Ich wollte lediglich dazu animieren, wie meines Erachtens bereits erwähnt wurde, "über den Tellerrand zu blicken" um die Konzepte der Objektorientierung aus einer etwas anderen Perspektive zu betrachten. Mir erscheint allerdings ihr empfindet es als "Schlechtreden von OOP" wenn man versucht zu zeigen, dass es auch ohne entsprechende Sprachunterstützung bzw. sonstigen alternativen Lösungsansätzen möglich ist.
Übrigens habe ich selbst genug Freude am Leben.
-
volkard schrieb:
du willst es nicht verstehen
QFT
mir faellt uebrigens etwas auf:
die harten verfechten von "klassen sind das A und O" haben alle keinerlei erfahrungen in anderen welten wie lisp, javascript und aehnlichen sprachen.das sollte zu denken geben. leute wie volkard und ruediger haben sich dagegen schon ne menge anderer sachen angesehen.
ich will das jetzt einfach nur mal so stehen lassen. und die frage in den raum stellen, ob es neben java vielleicht doch noch mehr gibt das OO ist...
-
Ja genau das erste was ich gerlernt habe ist HTML, das zweite JS....
Kongratz für euch
Das ist mal Argumentation der unterste Schublade.
Vorhin ware das A und O die Schnittstellen nun sollen das die Klassen sein Oo
-
Zeus schrieb:
Das ist mal Argumentation der unterste Schublade.
Niveauanpassung?
-
Ja genau das erste was ich gerlernt habe ist HTML, das zweite JS....
Ja scheint so, denn OOP hast du erst oberflächlich verstanden.
Das ist mal Argumentation der unterste Schublade.
Ich persönlich finde es unterste Schublade auf den Großteil der Argumente gar nicht erst einzugehen und trotzdem entsprechend rechthaberisch aufzutreten.
-
Lol erinnerst du dich wie die Diskussion angefangen hat:
Das ist keine Allgemeingültige Definition von OOP gibst, folglich hat auch jeder recht
-
Zeus schrieb:
Lol erinnerst du dich wie die Diskussion angefangen hat:
Das ist keine Allgemeingültige Definition von OOP gibst, folglich hat auch jeder rechtDas mit der allgemeingültigen Definition mag zwar stimmen, aber OOP ist zumindestens so detailliert definiert, dass man zwischen Information Hiding und Kapselung unterscheiden können sollte. Insofern mag jeder Recht haben, nur du bestimmt nicht.
Außerdem sind wir ja beim Thema geblieben, denn immerhin wurde gezeigt, dass OOP nicht zwangsweise heißt alles in eine Klasse zu packen.
-
Zeus schrieb:
Das ist keine Allgemeingültige Definition von OOP gibst, folglich hat auch jeder recht
Was ist keine Allgemeingültige Definition von OOP?
Hier hast du eine Allgemeingültige Definition:
Das Grundprinzip der Objektorientierten Programmierung ist es Daten in Objekte zusammenzufassen, die untereinander Nachrichten austauschen.
-
rüdiger schrieb:
Hier hast du eine Allgemeingültige Definition:
Das Grundprinzip der Objektorientierten Programmierung ist es Daten in Objekte zusammenzufassen, die untereinander Nachrichten austauschen.
Daten und Funktionen. Sicherlich kann man mit C oder auch Pascal oder so objektorientiert programmieren. Aber diese Sprachen unterstützen die Objektorientierung noch lange nicht, auch wenn man in Pascal ein record oder sowas hat, in dem man Daten zusammenfassen kann.
-
Gregor schrieb:
Daten und Funktionen. Sicherlich kann man mit C oder auch Pascal oder so objektorientiert programmieren. Aber diese Sprachen unterstützen die Objektorientierung noch lange nicht, auch wenn man in Pascal ein record oder sowas hat, in dem man Daten zusammenfassen kann.
kommt darauf was du meinst...
meinst du mit "unterstuetzen" das anbieten von konzepten zur einfacheren erstellen von OO code?wenn ja, dann stimmen wir hier ueberein. OO in C ist umstaendlich. Mehr unterstuetzung waere sehr wuenschenswert.
Wenn du aber meinst dass man deswegen nicht richtig OO programmieren kann, dann frage ich dich warum. welches konzept das essentiell fuer OOP dass ich in C nicht habe.
-
Shade Of Mine schrieb:
Gregor schrieb:
Daten und Funktionen. Sicherlich kann man mit C oder auch Pascal oder so objektorientiert programmieren. Aber diese Sprachen unterstützen die Objektorientierung noch lange nicht, auch wenn man in Pascal ein record oder sowas hat, in dem man Daten zusammenfassen kann.
kommt darauf was du meinst...
meinst du mit "unterstuetzen" das anbieten von konzepten zur einfacheren erstellen von OO code?wenn ja, dann stimmen wir hier ueberein. OO in C ist umstaendlich. Mehr unterstuetzung waere sehr wuenschenswert.
Genau das meine ich. Wenn es nur auf das Zusammenfassen von Daten ankommen würde, hätten die genannten Sprachen adäquate Sprachmittel, um OOP von Haus aus zu unterstützen. Ich habe nicht gesagt, dass es nicht geht.
-
Shade Of Mine schrieb:
OO in C ist umstaendlich. Mehr unterstuetzung waere sehr wuenschenswert.
Nö, warum? Dafür hast Du doch C++. Man muss doch nicht unbedingt in allen Sprachen objektorientiert programmieren. Unterschiedliche Sprachen -> unterschiedliche Anwendungsgebiete. Wenn man ein Anwendungsgebiet hat, in dem sich OOP anbietet, wird man auch eine Sprache wählen, die OOP unterstützt. Wenn man krampfhaft mit einer Sprache objektorientiert programmieren will, die das nicht adäquat unterstützt, dann scheint man im 1. Semester im Studium nicht richtig aufgepasst zu haben. Prolog eignet sich zum Beispiel wunderbar für deklarative Programmierung, ist aber für die OOP denkbar ungeeignet.
-
Shade Of Mine schrieb:
OO in C ist umstaendlich. Mehr unterstuetzung waere sehr wuenschenswert.
eher nicht. dafür gibt's ja c++ ...
-
Weil man normalerweise in C auch objektorientiert programmiert...
-
Zum Thema Sprachmittel für die OOP hab ich folgende Tabelle gefunden
http://www.ica1.uni-stuttgart.de/Courses_and_Lectures/C++/script/node4.htmlDie Seite vorher ist auch interessant
http://www.ica1.uni-stuttgart.de/Courses_and_Lectures/C++/script/node3.html
und die danach auch
http://www.ica1.uni-stuttgart.de/Courses_and_Lectures/C++/script/node5.html
-
Die Tabelle ist hinsichtlich Java nicht mehr aktuell (siehe Generische Prog. und Metaklassen).
-
byto schrieb:
Die Tabelle ist hinsichtlich Java nicht mehr aktuell (siehe Generische Prog. und Metaklassen).
1. Java ist momentan kein bischen generischer als es auch schon vor Java 5 war. Die momentane Generizität basiert darauf, dass alle Objekte von Object abgeleitet sind. Die Generics bringen diesbezüglich nur statische Typsicherheit ins Spiel, aber kein Gewinn an Generizität. Insofern ist der Name dieses Sprachmittels irgendwie irreführend.
2. Was sollen Metaklassen sein? Bei Java 5 gibt es jetzt Metadaten in Form von Annotations. Aber ist das damit gemeint?
-
In der Programmiersprache Java gibt es eine Klasse Class, die zwar wichtige Eigenschaften einer Metaklasse hat, sie kann beispielsweise Objekte anderer Klassen erzeugen, jedoch können hiervon keine spezielleren Metaklassen abgeleitet werden.
Hört sich wie Reflexion an.
-
Gregor schrieb:
1. Java ist momentan kein bischen generischer als es auch schon vor Java 5 war. Die momentane Generizität basiert darauf, dass alle Objekte von Object abgeleitet sind. Die Generics bringen diesbezüglich nur statische Typsicherheit ins Spiel, aber kein Gewinn an Generizität. Insofern ist der Name dieses Sprachmittels irgendwie irreführend.
Was genau ist Dein Kritikpunkt an den Java Generics? Ich verstehe nicht so genau, worauf Du hinaus willst. Spielst Du darauf an, dass die Information über die Generizität zur Laufzeit nicht mehr vorhanden ist und daher keine echte Typsicherheit gewährleistet?
2. Was sollen Metaklassen sein? Bei Java 5 gibt es jetzt Metadaten in Form von Annotations. Aber ist das damit gemeint?
Ich habe dabei tatsächlich an Metadaten gedacht, also Annotations in Java 5. Aber dank Wiki weiss ich nun, was mit Metaklassen gemeint ist, sehe nur nicht so wirklich, warum dass ein Kriterium für tolle Objektorientiertheit sein soll. Was habe ich davon, wenn ich eigene Metaklassen ableiten kann? Der Code wird (für Außenstehende) unverständlich und schwer zu warten. Naja, vielleicht bin ich da einfach subjektiv voreingenommen.