Was ist objektorientierte Programmierung? Die Grundlagen in den Begriffen von Layman
Wenn Sie Anfänger programmiert haben oder sich bereits mit verschiedenen Sprachen befasst haben, sind Sie wahrscheinlich auf die Phrase gestoßen “Objekt orientierte Programmierung” (oder “OOP”).
Es gibt alle möglichen technischen Erklärungen, was es ist, aber heute werden wir uns die Definition objektorientierter Programmierung auf einfache Weise ansehen.
Bevor wir beginnen: Verfahrenssprachen
Um zu verstehen, was eine objektorientierte Programmiersprache ist, müssen Sie verstehen, was sie ersetzt hat. Frühe Programmiersprachen waren so genannte Prozeduralverfahren, da der Programmierer sehr spezifische Prozeduren definierte, die der Computer ausführen würde.
In den ersten Tagen wurden Prozeduren auf Lochkarten geschrieben. Diese Schritte erforderten Daten, führten eine Folge von Aktionen an diesen Daten aus und gaben dann neue Daten aus.
Verfahrenssprachen haben eine Zeitlang 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 setzt objektorientierte Programmierung an.
Das Objekt der objektorientierten Programmierung
Was ist also objektorientierte Programmierung??
Die erste objektorientierte Sprache (allgemein als Simula vereinbart) führte die Idee von ein Objekte. Objekte sind Sammlungen von Informationen, die als einzelne Entität behandelt werden.
Wir werden mit einem Beispiel tiefer in das eintauchen, was das eigentlich bedeutet, aber zuerst müssen wir darüber reden Klassen. Klassen sind so etwas wie Vorobjekte. Sie enthalten eine Liste von Attributen, die bei ihrer Definition zu einem Objekt werden.
Nehmen wir als Beispiel das Programmieren 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 kann auch Methoden oder Funktionen haben.
Was macht das so viel besser als der prozedurale Ansatz?
Kurz gesagt, objektorientierte Programmiersprachen (wie Java) erleichtern die Organisation von Daten und Code auf eine Weise, die für größere Projekte vielseitiger ist.
Um es etwas ausführlicher zu besprechen, werden wir uns mit den vier Grundlagen der objektorientierten Programmierung beschäftigen.
Objektorientierte Programmierung: Abstraktion
Nur weil Sie etwas verwenden wollen, heißt das nicht, dass Sie wissen müssen, wie es funktioniert. Eine Espressomaschine ist zum Beispiel komplex. Aber Sie müssen nicht wissen, wie es funktioniert. Sie müssen das nur wissen, wenn Sie schlagen “Auf,” Du wirst Espresso bekommen.
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 benötigen Sie die Anfangs- und Endpositionenvariablen. Es könnte eine andere Methode verwenden, um festzustellen, ob es sich um ein Stück handelt.
Aber das musst du nicht wissen. Alles, was Sie wissen müssen, ist, dass sich das Teil bewegt, wenn Sie es bewegen. Das ist Abstraktion.
Objektorientierte Programmierung: Kapselung
Einkapselung ist eine der Möglichkeiten, mit der objektorientierte Programmierung Abstraktion erzeugt. Jedes Objekt ist eine Sammlung von Daten, die als einzelne Entität behandelt wird. 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 durch ihre Methoden beeinflusst werden.
Ein Bischofsobjekt kann mehrere Informationen enthalten. Beispielsweise könnte eine Variable aufgerufen werden “Position.” Diese Variable ist notwendig, um die move () -Methode zu verwenden. Und natürlich hat es eine Farbe.
Indem die Positionsvariable privat und die move () -Methode öffentlich gemacht wird, schützt ein Programmierer die Bewegungsvariable vor allen anderen Einflüssen. Wenn es sich bei der Farbe um eine private Variable handelt, kann ein anderes Objekt sie nicht ändern, es sei denn, es gibt eine Methode, 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 beibehalten. Ein Programmierer kann, da er gekapselt ist, Änderungen an der Struktur oder dem Inhalt des Objekts vornehmen, ohne sich um die öffentliche Schnittstelle zu kümmern.
Objektorientierte Programmierung: Vererbung
Objektorientierte Programmiersprachen verfügen neben Klassen auch über Unterklassen. Diese enthalten alle Attribute der übergeordneten Klasse, sie können jedoch auch andere Attribute enthalten.
In unserem Schachspiel benötigen die Bauernsteine eine Methode, die sie in andere Teile verwandeln kann, wenn sie das Ende des Bretts erreichen. 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 sie alle Attribute von Piece. Eine Instanz der Unterklasse Pawn enthält also eine zulässige Farbe, Höhe, Form und Bewegung.
Dazu gehört aber auch die transformPiece () -Methode. Jetzt müssen wir uns nie Sorgen machen, diese Funktion versehentlich auf einem Turm zu verwenden. Hier ist eine technische Erklärung:
Das Erstellen von Unterklassen spart außerdem viel Zeit. Anstatt neue Klassen für alles zu erstellen, können Programmierer eine Basisklasse erstellen und sie bei Bedarf auf neue Unterklassen erweitern. (Es ist jedoch erwähnenswert, dass ein übermäßiges Vertrauen auf die Vererbung schlecht ist. 10 Grundlegende Programmiergrundsätze, die jeder Programmierer befolgen muss 10 Grundlegende Programmiergrundsätze, die jeder Programmierer befolgen muss Schreiben Sie immer Code, der von jedem Benutzer gepflegt werden kann, der an Ihrer Software arbeitet Zum Abschluss finden Sie hier einige Programmierprinzipien, die Ihnen dabei helfen, Ihre Tat zu verbessern. Lesen Sie mehr.
Objektorientierte Programmierung: Polymorphismus
Polymorphismus ist ein Ergebnis der Vererbung. Um Polymorphismus vollständig zu verstehen, sind einige Programmierkenntnisse erforderlich, daher werden wir hier nur an den Grundlagen festhalten. Kurz gesagt: Polymorphismus ermöglicht es Programmierern, Methoden mit demselben Namen, jedoch mit zu verwenden verschiedene Objekte.
Unsere Piece-Klasse verfügt beispielsweise über eine move () -Methode, die ein Stück in jede Richtung um ein Leerzeichen bewegt. Das funktioniert für das Königsstück, aber für nichts anderes. Um dieses Problem zu beheben, können wir die neue move () - Methode in der Rook-Unterklasse definieren, die die Bewegung als unbegrenzte Anzahl von Leerzeichen vorwärts, rückwärts, links oder rechts definiert.
Wenn nun 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 erspart eine Menge Zeit beim Versuch herauszufinden, welche der vielen verschiedenen Methoden Sie verwenden sollten.
Objektorientierte Programmierung auf den Punkt gebracht
Wenn sich Ihr Kopf nach den letzten vier Definitionen etwas dreht, machen Sie sich keine allzu großen Sorgen. Hier sind die wichtigsten Dinge, die Sie beachten sollten:
- Die objektorientierte Programmierung sammelt Informationen in einzelne Objekte, die als Objekte bezeichnet werden.
- Jedes Objekt ist eine einzelne Instanz einer Klasse.
- Die Abstraktion verbirgt die inneren Funktionen eines Objekts, wenn es nicht notwendig ist, sie zu sehen.
- Encapsulation speichert verwandte Variablen und Methoden in Objekten und schützt sie.
- Vererbung ermöglicht es Unterklassen, Attribute von übergeordneten Klassen zu verwenden.
- Polymorphismus ermöglicht es Objekten und Methoden, mit einer einzigen Schnittstelle mit mehreren verschiedenen Situationen umzugehen.
Wenn Sie sich an diese Punkte erinnern, haben Sie einen guten Überblick über die objektorientierte Programmierung. Die vier Grundlagen der objektorientierten Programmierung können, wie gesagt, etwas schwierig sein. Sobald Sie mit der Programmierung beginnen, werden sie klarer.
Denken Sie daran, dass wir in diesem Artikel nur allgemeine Aspekte besprochen haben. Verschiedene objektorientierte Sprachen haben ihre eigenen Macken und Wege, Dinge zu verwirklichen. Wenn Sie die richtige Sprache für Sie ausgewählt haben, suchen Sie nach den besten Programmiersprachen? Fang hier an! Suchen Sie nach den besten Programmiersprachen? Fang hier an! Unabhängig davon, ob Sie Programmiersprachen völlig neu kennen oder in eine neue Art von Programmierung einsteigen möchten, lautet eine der wichtigsten Fragen, die Sie stellen müssen: "Welche Programmiersprache ist die richtige für mich?" Lesen Sie mehr, und Sie erfahren, wie die OOP-Prinzipien in die Praxis umgesetzt werden.
Erfahren Sie mehr über: Codierungs-Tutorials, objektorientierte Programmierung.