JavaScript: OOP – Klassen, Methoden und Vererbung

JavaScript: OOP – Klassen, Methoden und Vererbung

Mit JavaScript ist es möglich Objekt Orientiert zu programmieren (OOP). Dies bedeutet das der Code eine modulare Struktur aufweist, der Vorteil bei dieser Programmierart ist die Wartbarkeit sowie die Erweiterbarkeit. Wenn der Code gut entworfen wurde, ist es einfacher den Code zu verstehen. Mit einer Klasse ist es möglich Variablen und Methoden (Funktionen) zu einem Modul zu bündeln. Aus diesem Modul können dann beliebig viele Objekte erstellt werden, mit diesem Objekten sind die Methoden und Variablen verknüpft. Dabei hat aber jedes Objekt seine eigenen Variablen, sprich die Objekte teilen sich nicht die Variablen.

Klasse definieren

In JavaScript wird eine Klasse mit „class" definiert, nach „class" folgt der Name der Klasse. Es ist zu empfehlen einen Constructor zu verwenden, dies ist eine Methode die beim erstellen des Objekts ausgeführt wird.

{ constructor(zahlEins, zahlZwei) { this.zahlEins = zahlEins; this.zahlZwei = zahlZwei; } }

In diesem Beispiel wird die Klasse einfachesMathe erstellt, es werden 2 Parameter beim erstellen des Objektes in die Klasse gespeichert. Das this. gibt an, dass die Variablen Klassen intern gespeichert werden, sprich die beiden Werte können von jeder Methode in der Klasse benutzt werden.

Objekt erstellen

Mit „new" kann von einer Klasse ein Objekt erstellt werden. In diesem Beispiel werden 2 Parameter übergeben, 2 und 5. Das erstellte Objekt wird in die Variable aufgabe gespeichert, mittels dieser Variable kann dann auf das Objekt zugegriffen werden.

var aufgabe = new einfachesMathe(2, 5); console.log(aufgabe.zahlEins); console.log(aufgabe.zahlZwei); 

Dabei sollte aber drauf geachtet werden, dass die Klasse zuerst definiert wurde. Bei Funktionen ist dies egal ob zuerst der Funktionsaufruf kommt und dann die Funktion, aber bei Klassen muss zuerst die Klasse erstellt worden sein.

var aufgabe = new einfachesMathe(2, 5); console.log(aufgabe.zahlEins); console.log(aufgabe.zahlZwei); { constructor(zahlEins, zahlZwei) { this.zahlEins = zahlEins; this.zahlZwei = zahlZwei; } } 

Methoden

Methoden sind Funktionen innerhalb einer Klasse. Es gibt 4 Arten von Methoden in einer Klasse, „get" es werden Daten aus der Klasse geholt, „set" übergibt an die Klasse Daten, „static" sind nicht Objekt gebundene Methoden und werden als Helfer Methoden benutzt, des weiteren gibt es noch interne Methoden, bei diesen schreibt man einfach nur den Namen.

get Methode

Wie der Name schon verrät, holt man sich Daten aus der Klasse mit der Methoden art.

Bei get werden keine runden Klammern benutzt, da diese Methode keine Parameter erlaubt.

set Methode

Mit set erstellt man eine Methode die Daten an die Klasse übergibt. Es ist nur ein Parameter erlaubt.

Falls man doch mehrere Werte übergeben möchte, kann dies durch ein Array umgangen werden.

static Methoden

Static Methoden sind Objekt übergreifend, dies bedeutet, dass 2 Objekte miteinander vergleicht werden können.

Static Methoden werden immer auf die Klasse angewendet und nicht auf das Objekt

interne/private Methoden

Interne Methoden sind Methoden die nur innerhalb der Klasse benutzt werden. Diese Methoden sollten nicht von außen ausgeführt werden. Am besten schreibt man noch ein _ vor den Methodennamen, damit erkennbar wird das dies eine interne bzw. private Methode ist. Diese Methoden sind trotzdem von außen abrufbar, aber dies sollte vermieden werden, da sonst der Code unsauber wird.

Vererbung von Klassen

Klassen Vererbung bedeutet, dass die Klasse die Methoden und Variablen von einer anderen Klasse übernimmt. Damit ist es möglich unspezifische Methoden in einer Klasse zu definieren und dann auf andere Klassen zu vererben

super

„super" wird verwendet, wenn von der Elternklasse eine Methode aufgerufen werden soll. Es kann vorkommen das die Klasse und die Elternklasse gleichnamige Methoden beinhalten, durch „super" wird dann die Methode aus der Elternklasse verwendet und bei „this" die Methode aus der eigenen Klasse.


wallpaper-1019588
Review / Test des Skandika Vinneren Ergometers
wallpaper-1019588
Kartoffeln und Aubergine in schwarzer Bohnen Sauce (Jajangmyeon)
wallpaper-1019588
Spiele-Review: The Legend of Zelda: Skyward Sword HD [Nintendo Switch]
wallpaper-1019588
[Comic] Onkel Dagobert und Donald Duck – Don Rosa Library [02]