Das Prinzip von OOP für "Dummies"?

skueper

Niederhelfenschwiler Beeriapfel
Registriert
17.10.06
Beiträge
847
Hiho!

Ich hab mal eine, vielleicht etwas blöde, Frage:

Gib es einen guten Einstieg, der einem das Prinzip des OOP (Objekt Orientierten Programmierens) nahebringt?

Warum ich das Frage? Ganz einfach: ich habe das Prinzip bis heute einfach nicht gerafft... obwohl ich mir schon das eine oder andere zu dem Thema durchgelesen habe. Irgendwann kommt immer der Punkt, an dem ich es einfach nicht mehr gedanklich nachvollziehen kann und ich mir denke "Hä? Was soll das denn bitte bringen?"

Kurz mein Werdegang zum Thema Programmieren:
Angefangen habe ich (wie wohl viele aus meiner Altersklasse) mit Basic auf dem C64. In Assembler hab ich damals auch reingeschnuppert, das war mir aber ehrlich gesagt etwas zu kryptisch.
Richtig angefangen zu programmieren hab ich dann auf dem Amiga mit KickPascal und später auf dem PC (MS-DOS), mit Turbo Pascal 5.5 (und folgende). Ich war glücklich mit meinen Funktionen, Prozeduren, Includes und Units... damit habe ich eigentlich immer alles erschlagen können. Unter anderem hab ich ein Programm für Etikettendruck geschrieben und auch erfolgreich verkauft (war im Endeffekt eine Auftragsproduktion für eine Firma) und während des Abiturs im Informatik-Kurs eine Art Runtime für RPGs geschrieben. Bis dahin bin ich immer prima ohne OOP ausgekommen.
Vielleicht kommt meine Abneigung gegen OOP daher, das zu DOS-Zeiten die OOP unter Turbo Pascal gelinde gesagt arschlangsam war. Ich erinner mich an einen Wettstreit mit einem Kumpel, einen Norton-Commander-Clone zu schreiben. Er hat OOP und die enstpr. Bibliotheken (Visual Pascal?) genutzt, ich hab es ohne OOP und mit eigenen Bibliotheken realisiert. Das Ergebnis war: sein Programm sah etwas schicker aus, meines war deutlich schneller und kleiner.
Mit Windows 3.11 hab ich mich dann aus der Programmierung mehr oder weniger verabschiedet... ich hatte einfach keinen Bock, mehr "drum rum" zu programmieren als in das eigentliche Programm zu stecken.

Inzwischen steht ja das iPad vor der Tür und ich würde gerne wieder anfangen, zu Programmieren und mich auf dem iPad "austoben". Das "Problem": Objective-C. Wie der Name schon sagt: OOP ohne Ende...

Hat jemand einen guten Tip, wie jemand wie ich der so vernagelt auf "Nicht-OOP" ist, den Dreh zu OOP und Objective-C kriegen kann? Gibt es evtl. ein empfehlenswertes, möglichst deutsches, Buch zu dem Thema Objective-C, am liebsten mit speziellem Bezug auf iPhone-Programmierung?

Schade, daß Apple keine Interpreter-Apps auf dem iPhone/iPad zulässt... ich glaube ein BASIC dürfte auf der Plattform durchaus ein Erfolg werden.
 

Pii

Rheinischer Krummstiel
Registriert
25.06.07
Beiträge
383
... Hat jemand einen guten Tip, wie jemand wie ich der so vernagelt auf "Nicht-OOP" ist, den Dreh zu OOP und Objective-C kriegen kann? Gibt es evtl. ein empfehlenswertes, möglichst deutsches, Buch zu dem Thema Objective-C, am liebsten mit speziellem Bezug auf iPhone-Programmierung?
Basic und Pascal hilft hier nicht weiter. Ich glaube Du solltest Dir erst mal dieses Buch anschauen: Objective-C 2.0. Es geht nicht primär um die Entwicklung für das iPhone, sondern behandelt erstmal Objective-C und OOP von der Pike auf. Ich denke damit legst Du ein gutes Fundament.
 
Zuletzt bearbeitet:

AquariusBln

Golden Delicious
Registriert
15.02.10
Beiträge
7
Was willst Du Begreifen? Das Konzept bzw. Prinzip der Objektorientierten Softwareentwicklung oder das einer bestimmten Programmiersprache?

Denn generell hat objektorientierte Programmierung nichts mit einer bestimmten Programmiersprache zu tun. Wenn Du erst einmal das objektorientierte "Denken" verinnerlicht hast, kannst Du selbst mit "C" hervorragend objektorientiert programmieren. Zugegeben, fordert das dem Programmierer eine Menge Disziplin ab. Aber, aus diesem Grund, gibt es ja Programmiersprachen wie Smalltalk, C++, ObjectiveC oder Java.

Ich habe viele, viele Jahre prozedural programmiert und mich auch ständig gefragt: OOP was soll das? Wo ist der Unterschied? Beim Lesen des Buches:

Objektorientierte C++ Anwendungen:
Die Booch Methode
von Robert C. Martin

Prentice Hall Verlag
ISBN 3-8272-9520-3

Ist dann schließlich der Knoten geplatzt. Er führt dort einige Beispiele, aus der realen Welt auf und transportiert diese in die Welt der objektorientierten Programmierung. Plötzlich wird einem dann der Unterschied klar. Heute, fast 15 Jahre später, kann ich mir gar nicht mehr vorstellen, wie ich jemals nicht objektorientiert Programmiert habe. Ach Ja, anhand der 15 Jahre, kannst Du erkennen, dass das Buch schon etwas älter ist. Und Noch was: Ignoriere einfach das C++ in dem Titel, ist halt auch nur eine OO-Sprache. Wichtiger als der Beispiel-Code in dem Buch sind die Konzepte und die Modelle, die dort erläutert werden.
 

Irgendein Held

Oberösterreichischer Brünerling
Registriert
17.06.07
Beiträge
714
Ignoriere einfach das C++ in dem Titel, ist halt auch nur eine OO-Sprache. Wichtiger als der Beispiel-Code in dem Buch sind die Konzepte und die Modelle, die dort erläutert werden.
Das mit dem Beispielcode mag solange funktionieren, bis man zur Mehrfachvererbung kommt, o.Ä. - zumal die Beispiele wenig zum Obj-C lernen beitragen.

Ich wuerde dir Empfehlen nach einem guten Einstiegsbuch fuer Obj-C ausschau zu halten, da findet sich sicherlich etwas - es geht viel weniger darum ob sich das Buch jetzt an Programmiereinsteiger oder an alte Hasen orientiert sondern ob du es fuer angemessen betrachtest.

Zum einen kann ich Java ist auch eine Insel (Kapitel 3 Klassen und Objekte) empfehlen, evtl ist aber Objektorientierte Programmierung sinnvoller. Die beiden Buecher sind openbooks vom Galileo-Verlag. D.h. du kannst sie dir kaufen, oder online lesen(html), oder die HTML-Variante runterladen.

Viel Spaß und Erfolg! :)
 

skueper

Niederhelfenschwiler Beeriapfel
Registriert
17.10.06
Beiträge
847
Erstmal danke für die Antworten... hatte vergessen, "mein" Thema auch zu abonnieren und daher ist es mir etwas aus dem Blick geraten :oops:

Was willst Du Begreifen? Das Konzept bzw. Prinzip der Objektorientierten Softwareentwicklung oder das einer bestimmten Programmiersprache?

Denn generell hat objektorientierte Programmierung nichts mit einer bestimmten Programmiersprache zu tun. Wenn Du erst einmal das objektorientierte "Denken" verinnerlicht hast, kannst Du selbst mit "C" hervorragend objektorientiert programmieren.
...

Ich muß erst mal das Prinzip der objektorientierten Softwareentwicklung verstehen. Wenn ich das erstmal verinnerlicht habe, ist das Erlernen einer Programmiersprache IMO das kleinere Problem. Wie gesagt - OOP ist bis heute für mich ein Buch mit sieben Siegeln, ich kann "die Denke" einfach nicht nachvollziehen. Irgendwie ist mir das einfach zu abstrakt... aber ich werde mal ein Blick in das eine oder andere hier empfohlene Buch werfen.

Vielleicht schaff ich es endlich mal den Knoten im Kopf zu lösen. Nur hab ich das dumme Gefühl, daß das Programmieren nie mehr so schlicht und "einfach" wird wie zu den seligen Pascal-Zeiten ;)
 

nelfisch

Carola
Registriert
15.03.08
Beiträge
108
Ja, also ich kann dir auch nur wärmstens das Buch von Amin Negm-Awad empfehlen, heißt glaube ich "Objective-C und Cocoa" oder so ähnlich, kann leider grade nicht nachgucken. Beachte aber auf jeden Fall, dass das meist verwendete Cocoa-Framework nicht dem Cocoa-Touch Framework entspricht, dass man für die iPhone/iPod-Touch verwendet. Die Grundfunktionen und das Prinzip an sich ist zwar gleich, aber vor allem was die Klassen und Methoden angeht, bestehen da doch einige Unterschiede.
Wenn es dir nur um das reine Prinzip der Objektorientierten Programmierung geht, dann kann ich dir zum einen den entsprechenden Wikipedia-Artikel dazu empfehlen und (meinen) Artikel, ich finde der ist mir ganz gut gelungen...das gilt generell für OOP das hier gilt besondere im Bezug auf Objective-C, ist aber nur seehr grob angerissen....:)
So far