Eine Klasse ist die Vorlage, nach der gleichartige Objekte gebaut werden. Sie legt fest, welche Daten ein solches Objekt mitbringt und was sich damit tun lässt.
- Klasse
Die Vorlage, nach der gleichartige Objekte gebaut werden. Sie legt fest, welche Daten ein solches Objekt trägt und welche Funktionen darauf arbeiten.
Beispiel: „Die Klasse Produkt beschreibt einmal, was jedes Produkt im Shop mitbringt.“Abgrenzung zum Objekt: Die Klasse ist die Vorlage, das Objekt das fertige Stück daraus. Von einer Klasse entstehen beliebig viele Objekte, und jedes trägt eigene Werte.
Abgrenzung zur CSS-Klasse: Das ist etwas völlig anderes, nämlich ein Haken am HTML-Element, an dem die Gestaltung greift. Siehe Klasse (CSS).
Vorlage und Stück
Eine Klasse steht einmal im Code und beschreibt eine Art von Ding. Daraus entstehen zur Laufzeit beliebig viele Objekte, die dieselbe Form haben und verschiedene Werte tragen. Jedes einzelne davon heißt Instanz dieser Klasse.
Der Vorteil liegt im Einmal-Beschreiben. Steht in der Klasse, wie der Bruttopreis zustande kommt, gilt das für jedes Produkt im Shop. Niemand kann ein Produkt anlegen, bei dem die Rechnung anders läuft.
class Produkt {
constructor(name, preis, bestand) {
this.name = name;
this.preis = preis;
this.bestand = bestand;
}
istVerfuegbar() {
return this.bestand > 0;
}
}
const stuhl = new Produkt("Stuhl", 89.0, 4);
stuhl.istVerfuegbar(); // trueVererbung
Eine Klasse kann von einer anderen abstammen und deren Daten und Funktionen übernehmen. Die abgebende heißt Oberklasse, die übernehmende Unterklasse. Was die Unterklasse anders macht, schreibt sie neu; alles Übrige erbt sie.
Für einen Shop hieße das: Eine Klasse Produkt trägt, was jedes Produkt hat, und eine Klasse Downloadprodukt erbt davon und ersetzt nur die Versandregel. Der Rest steht weiterhin an einer Stelle.
Wo Klassen in einem Website-Projekt auftauchen
Im Browser eher selten. JavaScript kennt Klassen seit ES2015, kommt in der Frontend-Arbeit aber oft ohne aus. Auf dem Server sind sie die Regel: Redaktionssysteme wie TYPO3 und Statamic sind durchgehend in Klassen aufgebaut.
Begegnen wirst du ihnen vor allem in Aufwandsschätzungen. Wenn jemand sagt, eine Erweiterung lasse sich ableiten, meint er Vererbung, und das ist meist die gute Nachricht.