Woher hat die objektorientierte Programmierung ihren Namen?

Woher hat die objektorientierte Programmierung ihren Namen? / Webkultur

Objektorientierter ist nicht nur ein zufälliges Schlagwort, das Sie in Programmierkreisen hören. Es gibt einen Grund für den Namen - aber was? Erkunde mit mir einige der Grundlagen von Programmierkonzepten und erkläre, warum objektorientierte Programmierung die Technologie hinter moderner Software vorantreibt und sie der prozeduralen und logikbasierten Programmierung gegenüberstellt.

Geschichte der prozeduralen Programmierung

Als Computer erstmals erfunden wurden, mussten sie explizit mit einfachen Anweisungen programmiert werden - und “Software” Es war lediglich eine Sammlung dieser extrem einfachen Befehle, die ausgeführt werden sollten der Reihe nach.

Zunächst musste dieser Maschinencode geschrieben werden - verschieben Sie diesen “bisschen” von diesem Speicher an diesen Ort und führen Sie eine logische aus “und” Operation mit diesem Bit usw. - aber bald darauf wurden diese mit BASIC auf eine höhere Ebene abstrahiert.

Ich vermute, dass die meisten von Ihnen in der Schule auf BASIC (Allzweck-Symbolik für Anfänger) gestoßen sind. Es ist ein perfektes Beispiel für eine prozedurale Programmiersprache. Sogar mein erster Programmierversuch war BASIC auf einem Amstrad CPC-64. Jede Zeile beginnt mit einer Zeilennummer, gefolgt von einer einfachen Anweisung in für Menschen lesbarer Sprache.

Da prozedurale Sprachen den Befehlen nacheinander folgen, ist es für den Menschen in der Regel einfach zu verfolgen, was im Programm vor sich geht. Es ist jedoch auch schwierig, etwas über eine einfache Lernübung hinaus zu machen - was uns zur Erstellung objektorientierter Programmierung führt.

Objektorientierter?

Bei der objektorientierten Programmierung sollen verwandte Variablen und Funktionen in einem Objekt zusammengefasst werden, das eine Art komplexer Datenstruktur darstellt. Dieses Objekt kann dann mehrmals wiederverwendet oder erweitert werden, um noch komplexer zu sein.

Zum Beispiel könnte ein Spiel ein Spielerobjekt haben. Jedes Spielerobjekt im Spiel stellt einen einzelnen, einzigartigen Spieler aus dem echten Leben in unserem imaginären Multiplayer-Online-Spiel dar. Jedes Spielerobjekt verfügt über einen Spitznamen, einen aktuellen Standort, ein Inventar und eine Bewegungsrate. Obwohl jeder Spieler einzigartig ist, möchten wir dennoch, dass er dieselbe Basisfunktionalität verwendet. Jeder Spieler könnte eine haben Bewegung Funktion, die den Spieler um X Anzahl der Quadrate vorwärts bewegt. Jeder Spieler hat möglicherweise eine andere Bewegungsrate, aber wenn wir den Spieler anweisen, sich in einem Befehl zu bewegen, weiß er, wie er entsprechend seiner eigenen Internetmechanik reagieren muss.

Warum ist das nützlich? Ein Beispiel aus der Praxis: Da moderne grafische Benutzeroberflächen ohne Objekte nicht möglich wären, bieten alle Betriebssysteme ein Window-Objekt. Es ist daher einfach, ein neues zu haben “Fenster” komplett mit schalt- und Vollbildschaltflächen und der Möglichkeit, sich zu bewegen - ohne dass Sie das selbst programmieren müssen. Alles was Sie tun müssen, ist zu sagen Erstellen Sie ein Fenster.

In der Tat besteht moderne Software aus Tausenden und Abertausenden von Objekten - nicht nur Fenstern, sondern auch Schaltflächen und Formularfeldern sowie Alarmboxen (die selbst eine besondere Art von Fensterobjekten sind) - und es ist nur die Art und Weise, wie sie angeordnet sind, und die Logik Interaktion zwischen ihnen, die diese Software von anderen unterscheidet. Das bedeutet, dass Programmierer und Softwareentwickler sich auf die Kernmechanik ihres Programms konzentrieren können, ohne das Rad jedes Mal neu zu erfinden.

Ein weiterer Vorteil des objektorientierten Designs besteht darin, dass die Funktionalität voneinander getrennt und für uns nicht sichtbar ist. Also, wenn der Spieler in unserem Spiel die Vorwärts-Taste drückt, dann Anrufe das Funktion verschieben in dem Spielerobjekt. Wenn wir eine kleine Änderung dahingehend vornehmen, wie diese Bewegung genau innerhalb des Spielerobjekts ausgeführt wird - wie Springen statt Gehen -, müssen wir den Tastatur-Listener nicht anpassen. Es ruft immer noch an “Bewegung” Unabhängig davon, was im Player-Objekt intern geschieht - so können wir die Funktionalität ändern, ohne alles andere zu beschädigen.

Das Gleiche gilt für Betriebssysteme: Wenn der Benutzer sich plötzlich entscheidet, seine Fensterfarbe in Rot zu ändern, müssen Sie dies nicht erkennen und das Fenster ebenfalls rot machen - es ist alles in das Fensterobjekt integriert.

Erbe

Sobald wir Objekte haben, können wir sie auch erweitern und erben, um nützlichere Objekte mit unterschiedlichem Verhalten oder zusätzlicher Funktionalität zu erzeugen. Sie können Das Rad neu erfinden - wenn Sie möchten. In unserem Spielerbeispiel möchten wir vielleicht eine erstellen “Übermensch” Objekt. Superman ist immer noch ein Spieler, genauso wie jeder andere auch - er will auch einen Spitznamen haben und möchte auf den gleichen Spieler-Ranglisten aufgeführt werden - aber anstelle der Standardbewegungsaktion, die das Spielerobjekt um X Felder nach vorne bewegt, möchten wir, dass er dies tut Fliege stattdessen - bewege 10 Quadrate gleichzeitig über alle Objekte, die sich im Weg befinden. Durch die Erweiterung des grundlegenden Spielerobjekts können wir “erben” All diese nützliche Funktionalität, ohne dass Sie alles neu schreiben müssen - aber wir können es trotzdem “überschreiben” die Move-Funktion mit unserer speziellen Superman-Flugbewegung!

Objektorientierte Programmierung ist eine absolute Offenbarung, wenn Sie nur prozedurale Programmierung erlebt haben, und ich persönlich finde es schade, dass eine einfache Art von OOP-Sprache nicht in der Mittelstufe unterrichtet wird.

Eine letzte Sache: Logikbasierte Programmiersprachen

Diese sind für mich besonders interessant, da sie im Allgemeinen für alles, was mit künstlicher Intelligenz zu tun hat, von Nutzen sind. Logikbasierte Programmiersprachen wie Prolog verwenden keine Befehle und Anweisungen im herkömmlichen Sinne. Stattdessen lösen sie ein Problem mit bestimmten Regeln und Bedingungen.

Denken Sie an eine Dinnerparty, die Sie für Ihre Familie veranstalten. Ihre Tante kann nicht neben Ihrem Onkel sitzen, weil sie sich streiten; Sie möchten nicht, dass zwei Kinder zusammen sitzen, weil sie kleine Gauner sein werden. Sie wollen sicher nicht zwischen zwei Kindern sitzen. Das ist es genau dort - das ist Ihr Prolog-Programm. Geben Sie ihm jetzt eine Liste mit Kindern und Erwachsenen, die zur Party kommen, und es wird eine Liste mit möglichen Sitzvorschlägen ausgegeben!

Ich hoffe, Ihnen hat diese Einsteiger-Einführung in Programmierkonzepte gefallen. Es tut mir leid, dass ich nicht weiter ins Detail gehen konnte und natürlich gibt es eine Million Dinge, die ich noch nicht angesprochen habe. Wenn Sie mehr erfahren möchten, lassen Sie es mich in den Kommentaren wissen. Vielleicht könnten wir eine Reihe von objektorientierten Programmieranleitungen für Anfänger für verschiedene Sprachen durchführen, wenn genügend Interesse besteht. Schauen Sie sich auch unsere Programmierarchive mit verschiedenen Tools und Programmierseiten an.

Bildnachweis: ShutterStock

Erfahren Sie mehr über: Programmierung.