OOP mit JavaScript Grundkurs

Kernprinzipien der OOP

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
In diesem Video lernen Sie die zentralen theoretischen Prinzipien kennen, die objektorientierte Programmierung ausmachen. Aus allgemeiner Sicht, aber vor allen Dingen im Hinblick auf die Möglichkeiten, die JavaScript dabei bietet – oder auch nicht.
10:10

Transkript

In dem Kurs beschäftigen wir uns mit objetorientierter Programmierung in JavaScript. Um das richtig zu verstehen, sollte man die Grundprinzipien der objektorientierten Programmierung, kurz OOP, kennen. In diesem Video werden wir uns damit damit etwas genauer auseinandersetzen. Man kann sich den Konzepten der Objektorientierung am besten nähern, wenn man sich die Ziele klarmacht. Was ist denn das Ziel der objektorientierten Programmierung? Wir wollen die Wiederverwendbarkeit erreichen. Die Wiederverwendbarkeit gewisser Bestandteile. Man kann sich das einfach vorstellen über die Wiederverwendung von Funktionen, aber man geht noch viel weiter. Man erreicht eine Wiederverwendbarkeit durch Modularisierung. Um so eine Wiederverwendbarkeit zu gewährleisten, ist die Datenkapselung ganz elementar. In vielen Programmiersprachen macht man das durch gewisse Modifizierer. Schlüsselworte, die eine bestimmte Bedeutung haben, beispielsweise wie Private, um etwas zu privatisieren. So etwas wird es in JavaScript in der aktuellen Version noch nicht geben, aber man hat andere Techniken. Das Stichwort in diesem Zusammenhang sind sogenannte Closures und lokale Variablen. Datenkapselung ist also ein Mittel, um dieses Ziel der Wiederverwendbarkeit zu erreichen. Dabei wird der Zugriff auf Daten weitgehend indirekt erfolgen. Das Stichwort hier sind sogenannte Getter und Setter. Man hat diese in verschiedenen Sprachen und man kann sie in JavaScript auch bauen. Man muss das künstlich machen. Es gibt sie nicht vom Sprachkern her, aber grundsätzlich bestehen diese Möglichkeiten, so etwas zu realisieren auch in JavaScript. Nun steht im Kern der objektorientierten Programmierung das Objekt selbst. Ds steckt ja schon im Begriff drin. Und Objekte werden typischerweise erzeugt über Klassen. Diese kann man sich einmal vorstellen als Baupläne für Objekte, auf der anderen Seite klassifizieren Sie mehrere Objekte bezüglich ihrer Gemeinsamkeiten. So wie man es aus der Zoologie etwa kennt. In Javascript haben wir jetzt in der aktuellen Version keine Klassen vorliegen, sondern Prototypen. Aber wir werden in diesem Kurs sehen, dass Prototypenklassen von der Wirkung im Grunde das Gleiche bedeuten. Diese Objekte, die aus Klassen oder Prototypen erzeugt werden, diese dienen als Abstraktion der Wirklichkeit. Man fokussiert sich nur auf einen Teil dessen, was die Wirklichkeit darstellt, nämlich das, was einen wirklich interessiert. Und man bezeichnet Objekte auch als Instanzen von Klassen. Nun müssen Objekte miteinander kommunizieren können. Und das macht man in der objektorientierten Programmierung über sogenannte Botschaften oder Nachrichten. Messages. Das ist in vielen Programmiersprachen über die sogenannte Punkt-Notation geregelt. Das heißt, man schreibt den Namen eines Objektes hin, macht einen Punkt und dann wird eine Methode oder Eigenschaft aufgerufen, die man zu dem Zeitpunkt verwenden möchte. Dabei können Nachrichten in zwei Richtungen erfolgen. Von einem Objekt zum anderen oder von dem anderen Objekt B zum Objekt A oder in beide Richtungen. Kommen wir zum Stichpunkt Attribut bzw. zu dem der Operation. Beide wurden eben schon mal kurz erwähnt. Attribute sind die Beschreibungen von objekt- oder klassenbezogenen Daten. Man nennt sie auch oft Eigenschaften eines Objektes, wobei hier in manchen Programmiertechniken unterschieden wird. Prinzipiell sind die Attribute aber das, was ein Objekt von einem anderen unterscheidet. Beispielsweise eine Farbe, eine Größe und ähnliche Dinge. Das was aktiv von einem Objekt gemacht werden kann, nennt man eine Operation oder eben eine Methode. Es ist so etwas ähnliches wie eine Funktion nur objektgebunden oder klassengebunden. Es gibt auch Klassenmethoden sogenannte statische Methoden. Gehen wir noch etwas genauer auf einen Begriff ein, der eben schon einmal gefallen ist, nämlich die Abstraktion. Die Abstraktion ist einmal eben im Sinne eines Ausschnitts der Realität zu verstehen. Ein Objekt wie ein Stift hat eine Vielzahl von Eigenschaften und auch Methoden, aber in einem bestimmten Modell interessieren nur ein Teil davon. Beispielsweise die Farbe, ob es ein Kugelschreiber oder ein Bleistift oder etwas ähnliches ist. Es interessiert nicht das Gewicht, was aber natürlich auch da ist, aber durch die Abstraktion betrachtet man eben nur das, was wirklich interessant ist zu einem gewissen Zeitpunkt. Abstraktion taucht aber auch in einem anderen Zusammenhang auf. Es gibt in vielen Programmiertechnologien sogenannte Schnittstellen oder Interfaces. Diese beschreiben ganz abstrakt einen Mechanismus, um Klassenbeziehungen zu strukturieren. Etwas Ähnliches sind abstrakte Klassen. Bestimmte Operationen werden durch abstrakte Klassen erzwungen und zwar in sogenannten abgeleiteten Klassen. Sowohl Schnittstellen als auch abstrakte Klassen tauchen im eigentlichen Sinne in JavaScript nicht auf. Man kann sie aber in gewisser Weise nachbauen. Nun sollte auch der Begriff der sogenannten Assoziation bekannt sein. Eine Assoziation ist eine Möglichkeit, Beziehungen zwischen Objekten auszudrücken. Beispielsweise die Komposition bzw. Aggregation. Dabei wird ein Objekt aus anderen zusammengebaut. So wie ein Objekt Haus aus einzelnen Objekten, Stockwerke oder Zimmer bestehet. Oder ein Auto aus anderen Objekten wie Karosserie, Fahrwerk, Motor, usw. Und diese Assoziationen beschreiben die Art der Objekt- bzw. Klassenbeziehungen. Dabei werden in der Regel zwei Objekte oder Klassen in Beziehung gesetzt, aber man kann theoretisch auch mehrere Objekte und Klassen in Beziehung zu einander setzen. Die schon angesprochenen Assoziationen Aggregation und Komposition bedeuten, dass man Objekte zusammenfügt und man kann unterscheiden, ob Objekte, die zusammengesetzt werden, aus im Grunde eigenständig lebensfähigen Objekten bestehen, oder ob sie bei einer sogenannten Komposition nicht ohne ein umgebendes Objekt existiern können. Auch hier kann man sich plastische Beispiele vorstellen. Ein Zimmer kann im Grunde nicht ohne ein Haus existieren. In dem Fall hätten wir also ein Haus als eine Komposition von Zimmern. Während ein Motor zum Beispiel so gesehen werden kann, dass ein Zylinderkopf als Objekt auch eigenständig existiert. Oder eine Kurbelwelle oder was in so einem Motor alles drin ist. Wobei es eine Art der Betrachtung der Abstraktion ist, ob man es wirklich als Aggregation zu verstehen hat oder als Komposition. Es kommt auf das Modell an, was man hier darstellen möchte. Es ist nicht zwingend, das eine als Komposition, das andere als Aggregation zusammenzusetzen. Auf keinen Fall dürfen Sie den Begriff der Vererbung bei der objektorientierten Programmierung vergessen. Das ist eine Beziehung zwischen Klassen oder Objekten, in der man Dinge übernimmt von übergeordneten Strukturen. Man kann mit Vererbung Dinge tun, die man als Generalisierung bezeichnet oder Spezialisierung von Objekttypen. Als Beispiel, Sie haben ein Objekt vom Typ Tier. Ein Hund ist auch ein Tier, aber ein spezielles Tier. Das heißt, wir haben hier eine Spezialisierung. Wenn Sie einen Hund haben, ein Schaf, ein Rind, sind das alles Tiere, aber in dem Moment, wo man von Tieren redet, hat man eine sogenannte Generalisierung. Wenn man zuerst das Tier betrachtet und dann die Spezialisierung, hat man ein sogenanntes top-down Design, was man vornimmt, und wenn man die einzelnen Tiertypen betrachtet und dann auf das Tier generalisiert, hat man ein bottom-up Design. Aber das nur am Rande erwähnt. Wenn Klassen so miteinander in Beziehung gesetzt werden, dann hat man eine Vererbungshierarchie. Den letzten Begriff, den ich Ihnen in diesem Video nahebringen möchte, ist der der Polymorphie. Das heißt eigentlich nur Vielgestaltigkeit. In vielen Sprachen, in vielen Programmiertechnologien bedeutet das, dass man Methoden mit gleichem Namen aufgrund einer unterschiedlichen Argumentenliste unterscheiden kann. Dadurch bekommt man eine flexible Auswahl der Funktionalitäten. In JavaScript ist das nicht möglich, weil Funktionen oder Methoden werden ausschließlich aufgrund des Namens ausgewählt. Aber man kann polymorphes Verhalten programmieren durch eine geeignete Programmierlogik im Inneren einer Funktion oder Methode. Sie sollten sich merken, dass Polymorphie sehr allgemein ein vielgestaltiges Verhalten aufgrund einer vorliegenden Situation beschreibt. Um es zusammenzufassen: Diese Begriffe, die Sie in diesem Video kennengelernt haben, müssen nicht 100% parat sein, wenn Sie objektorientiert mit JavaScript programmieren wollen, aber Sie sollten verstehen, was Sie da tun. Dass es elementare Bestandteile sind dessen, was eine Sprache leisten muss, damit man objektorientiert mit ihr programieren kann.

OOP mit JavaScript Grundkurs

Sehen Sie, wie Sie mit JavaScript objektorientiert programmieren können.

3 Std. 8 min (35 Videos)
Derzeit sind keine Feedbacks vorhanden...
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:09.03.2017

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!