Werbung

Wenn Sie etwas getan haben Anfängerprogrammierungoder haben sogar angefangen, verschiedene Sprachen zu betrachten, sind Sie wahrscheinlich auf den Ausdruck "objektorientierte Programmierung" (oder "OOP") gestoßen.

Es gibt alle möglichen technischen Erklärungen, was es ist, aber heute werden wir uns damit befassen, objektorientierte Programmierung auf einfache Weise zu definieren.

Bevor wir beginnen: Prozedurale Sprachen

Um zu verstehen, was eine objektorientierte Programmiersprache ist, müssen Sie verstehen, was sie ersetzt hat. Frühe Programmiersprachen waren prozedural - so genannt, weil der Programmierer einen sehr spezifischen Satz von Prozeduren definieren würde, die der Computer ausführen würde.

Was ist objektorientierte Programmierung und wie fange ich an, sie zu lernen?

In den frühesten Tagen wurden Verfahren auf Lochkarten geschrieben. Diese Schritte nahmen Daten auf, führten eine Folge von Aktionen für diese Daten aus und gaben dann neue Daten aus.

Prozedurale Sprachen haben eine Zeit lang gut funktioniert (und einige werden noch verwendet). Wenn Sie jedoch etwas programmieren möchten, das über eine grundlegende Abfolge von Schritten hinausgeht, kann es schwierig werden, prozedurale Sprachen zu verwalten. Hier kommt die objektorientierte Programmierung ins Spiel.

Das Objekt der objektorientierten Programmierung

Was ist objektorientierte Programmierung?

Die erste objektorientierte Sprache (allgemein als Simula anerkannt) führte die Idee von ein Objekte. Objekte sind Sammlungen von Informationen, die als einzelne Entität behandelt werden.

Wir werden in einem zweiten Beispiel anhand eines Beispiels näher darauf eingehen, was das eigentlich bedeutet, aber zuerst müssen wir darüber sprechen Klassen. Klassen sind wie Vorobjekte. Sie enthalten eine Liste von Attributen, die, wenn sie definiert sind, zu einem Objekt werden.

Was ist objektorientierte Programmierung und wie fange ich an, sie zu lernen?

Nehmen wir das Beispiel der Programmierung eines Schachspiels. Wir könnten eine Klasse namens Piece haben. Innerhalb von Piece haben wir eine Liste von Attributen:

  • Farbe
  • Höhe
  • Gestalten
  • Bewegung erlaubt

Ein Objekt definiert einfach eine bestimmte Instanz eines Objekts, das zu dieser Klasse gehört.

Wir könnten also ein Objekt namens WhiteQueen haben. Dieses Objekt hätte Definitionen für alle vier Attribute (weiß, hoch, zylindrisch mit Zinnen, beliebig viele Leerzeichen in beliebiger Richtung). Es könnte auch haben Methoden oder Funktionen.

Was macht das so viel besser als den prozeduralen Ansatz?

Kurz gesagt, objektorientierte Programmiersprachen (wie Java) erleichtert die Organisation von Daten und Code auf eine Weise, die für größere Projekte vielseitiger ist.

Um es etwas detaillierter zu diskutieren, werden wir über die vier Grundlagen der objektorientierten Programmierung sprechen.

Objektorientierte Programmierung: Abstraktion

Nur weil Sie etwas verwenden möchten, müssen Sie nicht wissen, wie es funktioniert. Eine Espressomaschine ist zum Beispiel komplex. Sie müssen jedoch nicht wissen, wie es funktioniert. Sie müssen nur wissen, dass Sie Espresso bekommen, wenn Sie auf "Ein" klicken.

Was ist objektorientierte Programmierung und wie fange ich an, sie zu lernen?

Gleiches gilt für Objekte in der objektorientierten Programmierung. In unserem Schachbeispiel haben wir möglicherweise eine move () -Methode. Diese Methode kann viele Daten und andere Methoden erfordern. Möglicherweise werden die Variablen für die Anfangsposition und die Endposition benötigt. Es könnte eine andere Methode verwenden, um festzustellen, ob ein Stück erfasst wurde.

Aber das musst du nicht wissen. Alles, was Sie wissen müssen, ist, dass sich das Stück bewegt, wenn Sie es anweisen, sich zu bewegen. Das ist Abstraktion.

Objektorientierte Programmierung: Kapselung

Die Kapselung ist eine der Möglichkeiten, mit denen objektorientierte Programmierung Abstraktion erzeugt. Jedes Objekt ist eine Sammlung von Daten, die als eine Einheit behandelt werden. Und innerhalb dieser Objekte befinden sich Daten - sowohl Variablen als auch Methoden.

Die Variablen innerhalb eines Objekts werden im Allgemeinen privat gehalten, was bedeutet, dass andere Objekte und Methoden nicht auf sie zugreifen können. Objekte können nur mit ihren Methoden beeinflusst werden.

Ein Bischofsobjekt kann mehrere Informationen enthalten. Zum Beispiel könnte es eine Variable namens "Position" haben. Diese Variable ist erforderlich, um die move () -Methode zu verwenden. Und natürlich hat es eine Farbe.

Indem ein Programmierer die Positionsvariable privat und die move () -Methode öffentlich macht, schützt er die Verschiebungsvariable vor anderen Auswirkungen. Wenn es sich bei der Farbe um eine private Variable handelt, kann ein anderes Objekt sie nur ändern, wenn es eine Methode gibt, die die Änderung zulässt. (Was Sie wahrscheinlich nicht hätten, da die Farbe des Stücks konstant bleiben sollte.)

Diese Variablen und Methoden werden im Bishop-Objekt gespeichert. Da sie gekapselt sind, kann ein Programmierer Änderungen an der Struktur oder am Inhalt des Objekts vornehmen, ohne sich um die öffentliche Schnittstelle kümmern zu müssen.

Objektorientierte Programmierung: Vererbung

Objektorientierte Programmiersprachen haben neben Klassen auch Unterklassen. Diese enthalten alle Attribute der übergeordneten Klasse, können aber auch andere Attribute enthalten.

In unserem Schachspiel benötigen die Bauernfiguren eine Methode, die sie in andere Figuren verwandeln kann, wenn sie es bis zum Ende des Bretts schaffen. Wir nennen es die transformPiece () -Methode.

Nicht jedes Stück benötigt die transformPiece () -Methode. Wir möchten es also nicht in die Piece-Klasse aufnehmen. Stattdessen können wir eine Unterklasse namens Pawn erstellen. Da es sich um eine Unterklasse handelt, erbt es alle Attribute von Piece. Eine Instanz der Unterklasse Bauer enthält also eine Farbe, Höhe, Form und Bewegung, die zulässig sind.

Es enthält aber auch die transformPiece () -Methode. Jetzt müssen wir uns keine Sorgen mehr machen, dass diese Funktion versehentlich auf einem Turm verwendet wird. Hier ist eine technische Erklärung:

Das Erstellen von Unterklassen spart außerdem viel Zeit. Anstatt für alles neue Klassen zu erstellen, können Programmierer eine Basisklasse erstellen und diese dann bei Bedarf auf neue Unterklassen erweitern. (Es ist jedoch erwähnenswert, dass Übermäßiges Vertrauen in die Vererbung ist schlecht 10 Grundlegende Programmierprinzipien Jeder Programmierer muss folgenSchreiben Sie immer Code, der von jedem gepflegt werden kann, der möglicherweise an Ihrer Software arbeitet. Zu diesem Zweck finden Sie hier einige Programmierprinzipien, die Ihnen dabei helfen, Ihre Handlung zu bereinigen. Weiterlesen .)

Objektorientierte Programmierung: Polymorphismus

Polymorphismus ist ein Ergebnis der Vererbung. Das vollständige Verständnis des Polymorphismus erfordert einige Programmierkenntnisse, daher bleiben wir hier bei den Grundlagen. Kurz gesagt, Polymorphismus ermöglicht es Programmierern, gleichnamige Methoden zu verwenden, jedoch mit verschiedene Objekte.

Zum Beispiel könnte unsere Piece-Klasse eine move () -Methode haben, die ein Stück um ein Feld in eine beliebige Richtung verschiebt. Das funktioniert für das Königsstück, aber für nichts anderes. Um dieses Problem zu beheben, können wir in der Rook-Unterklasse eine neue move () -Methode definieren, die Bewegung als unbegrenzte Anzahl von Leerzeichen vorwärts, rückwärts, links oder rechts definiert.

Wenn ein Programmierer die move () -Methode aufruft und ein Stück als Argument verwendet, weiß das Programm genau, wie sich das Stück bewegen soll. Dies spart eine Menge Zeit, wenn Sie herausfinden möchten, welche der vielen verschiedenen Methoden Sie verwenden sollten.

Objektorientierte Programmierung auf den Punkt gebracht

Wenn sich Ihr Kopf nach den letzten vier Definitionen ein wenig dreht, machen Sie sich keine Sorgen. Hier sind die wichtigsten Dinge, an die Sie sich erinnern müssen:

  • Die objektorientierte Programmierung sammelt Informationen in einzelnen Entitäten, die als Objekte bezeichnet werden.
  • Jedes Objekt ist eine einzelne Instanz einer Klasse.
  • Die Abstraktion verbirgt das Innenleben eines Objekts, wenn es nicht erforderlich ist, sie zu sehen.
  • Die Kapselung speichert verwandte Variablen und Methoden in Objekten und schützt sie.
  • Durch Vererbung können Unterklassen Attribute aus übergeordneten Klassen verwenden.
  • Durch Polymorphismus können Objekte und Methoden mit einer einzigen Schnittstelle mehrere verschiedene Situationen bewältigen.

Wenn Sie sich an diese Punkte erinnern können, haben Sie einen guten Überblick über die objektorientierte Programmierung. Die vier Grundlagen der objektorientierten Programmierung können, wie bereits erwähnt, etwas schwierig in den Griff bekommen. Sobald Sie mit dem Programmieren beginnen, werden sie klarer.

Denken Sie daran, dass wir in diesem Artikel nur allgemeine Aspekte behandelt haben. Verschiedene objektorientierte Sprachen haben ihre eigenen Macken und Wege, um Dinge geschehen zu lassen. Wenn du Wählen Sie die richtige Sprache für Sie Auf der Suche nach den besten Programmiersprachen? Fang hier an!Unabhängig davon, ob Sie völlig neu in Programmiersprachen sind oder in eine neue Art der Programmierung einsteigen möchten, ist eine der wichtigsten Fragen: "Welche Programmiersprache passt zu mir?" Weiterlesen Sie werden lernen, wie die OOP-Prinzipien in die Praxis umgesetzt werden.

Dann ist ein Content-Strategie- und Marketingberater, der Unternehmen dabei hilft, Nachfrage und Leads zu generieren. Er bloggt auch über Strategie- und Content-Marketing auf dannalbright.com.