Eigenschaften und Methoden
Teil des Abschnitts Objektorientierte Programmierung der JavaScript-Journey von Coddy — Lektion 13 von 56.
Klassen in JavaScript ermöglichen es uns, Eigenschaften und Methoden zu definieren, die von allen Instanzen der Klasse geteilt werden.
Erstellen Sie eine Klasse mit Eigenschaften:
class Car {
constructor(make, model) {
this.make = make;
this.model = model;
}
}Beim Erstellen einer Instanz setzt der Konstruktor diese Eigenschaften:
const myCar = new Car('Toyota', 'Corolla');
console.log(myCar.make); // Ausgabe: 'Toyota'
console.log(myCar.model); // Ausgabe: 'Corolla'Fügen Sie der Klasse eine Methode hinzu:
class Car {
constructor(make, model) {
this.make = make;
this.model = model;
}
getDescription() {
return `This car is a ${this.make} ${this.model}.`;
}
}Jetzt können wir diese Methode auf jeder Instanz aufrufen:
const myCar = new Car('Toyota', 'Corolla');
console.log(myCar.getDescription()); // Ausgabe: 'This car is a Toyota Corolla.'Aufgabe
Erstellen Sie eine Klasse namens Book in der Datei book.js mit folgendem:
- Ein Konstruktor, der die Parameter
title,authorundpagesentgegennimmt und diese als Eigenschaften setzt. - Eine Methode namens
getInfo, die einen String im Format: „Title: [title], Author: [author], Pages: [pages]“ zurückgibt. - Exportieren Sie die Klasse, indem Sie `export` vor die `class`-Deklaration setzen.
Spickzettel
Klassen in JavaScript definieren Eigenschaften und Methoden, die von allen Instanzen gemeinsam genutzt werden.
Erstellen Sie eine Klasse mit einem Konstruktor:
class Car {
constructor(make, model) {
this.make = make;
this.model = model;
}
}Erstellen Sie eine Instanz mit new:
const myCar = new Car('Toyota', 'Corolla');
console.log(myCar.make); // Ausgabe: 'Toyota'Fügen Sie Methoden zu einer Klasse hinzu:
class Car {
constructor(make, model) {
this.make = make;
this.model = model;
}
getDescription() {
return `This car is a ${this.make} ${this.model}.`;
}
}Rufen Sie Methoden auf Instanzen auf:
const myCar = new Car('Toyota', 'Corolla');
console.log(myCar.getDescription()); // Ausgabe: 'This car is a Toyota Corolla.'Exportieren Sie eine Klasse:
export class Car {
// Klassendefinition
}Probier es selbst
import { Book } from './book.js';
// Test (diesen Teil nicht ändern)
const book = new Book("JavaScript Basics", "John Doe", 200);
console.log(book.getInfo());
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Objektorientierte Programmierung
1Objekte & das this-Schlüsselwort
Kurze Wiederholung: ObjekteMethoden zu Objekten hinzufügenDas this-Schlüsselwort verstehenKonstruktorfunktionenDas new-SchlüsselwortWiederholungs-Challenge7Vererbung & das extends-Schlüsselwort
VererbungDie „ist-ein“-BeziehungDas extends-SchlüsselwortDie super()-MethodeVererben von Eigenschaften & MethodenWiederholungs-Challenge10Polymorphie
Was ist Polymorphie?Geerbte Methoden überschreibenVerwendung von superWiederholungs-Challenge13Komposition vs. Vererbung
Die "hat-ein"- vs. "ist-ein"-BeziehungDie Grenzen tiefer VererbungObjekte zusammenbauen2Code organisieren
Was sind Module?Exportieren mit exportImportieren mit importDefault- vs. benannte Exports5Kapselung & Zugriff
KapselungÖffentliche & private KlassenfelderPrivate MethodenWiederholungs-Herausforderung8OOP-Code strukturieren
Klassen in Modulen organisieren11Projekt: Ein Shape-Renderer
Setup: Shape-Klasse & ExportCircle-Klasse: Vererbung14Bibliotheksverwaltungssystem
Entwurf der BibliothekBuch-Klasse mit Komposition3Klassen & Objekte
Was ist eine Klasse?Instanzen erstellenEigenschaften und MethodenWiederholungs-Challenge6Projekt: Ein einfaches Bankkonto
Klasse BankAccountEinzahlungen und Auszahlungen9Statische Methoden & Eigenschaften
Klassenebene vs. InstanzebeneStatische EigenschaftenStatische HilfsmethodenWiederholungs-Challenge12Getter & Setter
Die Schlüsselwörter get und setBerechnete EigenschaftenValidierung und SeiteneffekteWiederholungs-Challenge15Abschluss-Herausforderungen
Spielfiguren-BuilderE-Commerce ProduktsystemUniversitäts-VerwaltungssystemSmart-Home-Gerätesystem