it-swarm.dev

Wie lerne ich am besten OOP Konzepte / Prinzipien praktisch?

Ich wollte eine objektorientierte Programmiersprache lernen, ich möchte nicht, dass es zu irgendeinem Zweck nur das gesamte Konzept von OOP kennt. Kann mir jemand sagen, welche Sprache ich lernen soll?

12
Caffeinatedwolf

Einige weitere Vorschläge:

  • Das beste Buch, das ich je gelesen habe OOP bar none ist Bertrand Meyers Object Oriented Software Construction . Es ist keine 'einfache' Lektüre, die Sie benötigen Denken Sie an einigen Stellen gut nach. Aber es macht den besten Job, den ich je gesehen habe, um OO Prinzipien) zu erklären.

  • Was die Sprachen betrifft: Ich würde mich von C++ fernhalten. Einfach zu groß für Lernzwecke. Wenn Sie eine Sprache suchen, die Ihnen wirklich hilft, OO (im Gegensatz zu einer Sprache, in der Sie Mainstream-Apps schreiben/mit der Sie einen Job bekommen)), dann schauen Sie sich Smalltalk. Oder Eiffel (die Sprache in) an Meyers Buch oben).

  • Wenn Sie eine Sprache wollen, die etwas mehr Mainstream ist, aber dennoch OO Prinzipien) treu unterstützt, dann Python ist eine gute Wahl. Java = & C # sind auch anständig, wenn Sie statisch tippen möchten.

Ein Wort der Vorsicht: Die Sprache wird Ihnen OO nicht beibringen. Es kann nur helfen (oder behindern), wie gut es Konzepte unterstützt OO Konzepte. Lernen OO geht es wirklich darum, zu lernen denke in OO Begriffen. Dafür würde ich auf Meyers Buch zurückkommen.

hth.

13
sfinnie

Sie können jede der objektorientierten Sprachen wie C++, Java, C # usw. lernen, um OOPS auszuprobieren.

Wenn Sie wirklich OOP lernen möchten, müssen Sie über die Sprachen hinaus denken und verstehen, dass dies ein Paradigma ist, das die Komplexität von Mangae in Softwareprogrammen unterstützt, genau wie wir sie in dieser realen Welt verwalten. Dann lernen Sie die Grundkonzepte in OO wie Polymorphismus, Vererbung, Kapselung (PIE) usw.

Es gibt gute Bücher über zu objektorientierte Analyse und Design mit Anwendungen (2. Auflage) von Grady Booch

Sie können auch Blogs wie dieses ausprobieren, von denen ich fand, dass sie einfach genug sind, um mit- faszinierendoops.com zu beginnen

12
WinW

Du willst OOP lernen? Eine Antwort - Smalltalk.

Es ist eine elegante Sprache und ist OO bis ins Mark. Sie werden OOP von Anfang an lernen und werden nicht durch all die anderen Ablenkungen behindert, die andere haben Sprachen schaffen es zu integrieren.

Smalltalk gewinnt. Und es gibt auch einige gute kostenlose E-Books (siehe: Stephane Ducasse )

3
Simon Knights

Sie müssten C++ lernen, oder vielleicht einer der Vorfahren wie Smalltalk. C++ bietet eine saubere Trennung zwischen Konzepten wie Objektorientierung, Speicherverwaltung und Referenz gegen Wert und bietet eine starke generische Unterstützung.

Lernen Sie nicht Java oder eine .NET-Sprache wie C #. Wenn Sie eine Sprache wie Java lernen, lernen Sie Dinge wie "Objekte befinden sich immer auf dem Heap und sind immer Referenzen" nur wahr für Java und absolut nicht wahr für OOP im Allgemeinen. Diese Verschmelzung von Konzepten (Objektorientierung, Speicherverwaltung, Referenz gegen Wert) ist sehr gefährlich für eine erste Sprache, denn sobald Sie sie in Ihrem Kopf stecken lassen, kann es sehr schwierig sein, sie wieder herauszuholen. C # ist etwas in dieser Hinsicht besser, aber nicht viel. Außerdem können sie haben eine hohe Tendenz zu lehren "Vererbung ist ein Hammer und alles ist ein Nagel" mit schwacher generischer Programmierunterstützung.

3
DeadMG

Der beste Weg, um OOP Konzepte zu lernen, besteht darin, immer mehr Code zu schreiben und ihn häufig überprüfen zu lassen. Übung macht einen guten Programmierer aus.

Denken Sie an reale Szenarien, definieren Sie eine Problemstellung - lösen Sie sie im Code und lassen Sie sie überprüfen. Sie können die Hilfe jederzeit von https://codereview.stackexchange.com/ für Bewertungen erhalten :)

Viel Spaß beim Codieren !!!

1
karthiks

Schritte

  1. Erfahren Sie, was sie bedeuten.
  2. Erfahren Sie, wie Sie sie implementieren.
  3. Nehmen Sie ein Projekt zur Entwicklung, wählen Sie Ihre Sprache [in die das OOPS-Prinzip wie VB.NET oder C # oder C++ oder Java usw.] integriert sein sollte]
  4. Überlegen Sie, wie Sie die Projektlogik von OOPS vereinfachen können. [Hinweis: Implementieren Sie OOPS nicht nur, weil Sie sie haben wollten, sie sollten Ihren Zweck lösen.]
  5. Vergiss nicht: Du wirst auch aus deinen Fehlern lernen .
0
Chris

Mein erster Kontakt zur OO Welt war C++, was kein schlechter Start war. Aber ich habe mich beim Erlernen von Python stark verbessert. Der Unterschied liegt in den Sprachen: Ideen ausprobieren ('wie kann ich Lösen Sie dieses Problem auf eine OO Art und Weise? ') in C++. Sie müssen mehr Code schreiben und enthalten viel mehr Fallstricke als das Ausprobieren derselben Idee in Python. Daher würde ich Python empfehlen.

0
rocksportrocker

Ich denke nicht, dass Sie in eine andere Sprache schauen sollten, während Sie versuchen, OOP zu lernen. Für mich ist es einfacher, die Theorie zu verstehen und dann zu lernen, sie anzuwenden, wenn ich mich auf etwas beziehen kann, das ich bereits kenne. Das Herausfinden einer neuen Syntax steht nur im Weg.

Sie können mit jedem OOP Buch) beginnen. Wieder würde ich eines in der Sprache meiner Wahl erhalten. Das Lesen eines Buches über Refactoring (OOP-Stil) half mir bei der Anwendung von OOP. Ich nahm ein Bestehendes Projekt (keine Ablenkung vom Sammeln von Anforderungen) und neue Wege gefunden, um es zu verbessern. Es war nicht nur OOP für OOP willen. Dann können Sie lernen, wie Die Logik hier ist, dass Sie es nicht immer von Anfang an richtig machen. Wenn Sie erkennen, wo es angemessen ist, sind Sie besser dran. Wie die meisten Dinge, die es gewonnen hat. ' Nicht jedes Problem lösen.

Bei einigen Sprachen gibt es bestimmte Einschränkungen. Wenn es Ihr Ziel ist, der Meister der Mehrfachvererbung zu sein, ist .NET nicht verfügbar.

0
JeffO

Ich werde hier gegen das konventionelle Denken verstoßen und vorschlagen, dass die einfachsten Sprachen für sing OOP nicht unbedingt die besten Sprachen für learning sind Ich war zum ersten Mal mit OOP mit C++ konfrontiert), aber ich habe es erst "verstanden", als ich Larry Walls Kamelbuchkapitel über OOP mit Perl) gelesen habe. Aus irgendeinem Grund hatte ich Probleme, den Unterschied zwischen Klassen und Objekten zu erfassen, bis ich explizit segnen ein Objekt in eine Klasse umwandeln musste. Ich habe die zugrunde liegende Implementierung von OOP) nicht wirklich verstanden = Bis ich es in C mit GObject mache, wo Ihnen keines dieser Details verborgen bleibt. Ich habe die Best Practices erst wirklich verstanden, als ich an einer sprachunabhängigen Unternehmensklasse teilgenommen habe. Es ist ein sehr großes Thema, und Sie müssen es finden Möglichkeiten, es zu lernen, die am besten für Sie funktionieren.

0
Karl Bielefeldt