Methoden, die den Zustand ändern
Teil des Abschnitts Objektorientierte Programmierung der JavaScript-Journey von Coddy — Lektion 15 von 56.
Methoden in JavaScript-Klassen können den Zustand (Eigenschaften) eines Objekts ändern. Dies ist eines der Hauptmerkmale der objektorientierten Programmierung.
Erstellen wir eine einfache BankAccount-Klasse:
class BankAccount {
constructor(owner, balance = 0) {
this.owner = owner;
this.balance = balance;
}
deposit(amount) {
this.balance += amount;
}
}Lassen Sie uns nun eine Instanz erstellen und ihren Zustand ändern:
const johnsAccount = new BankAccount("John", 100);
console.log(johnsAccount.balance); // Ausgabe: 100
johnsAccount.deposit(50);
console.log(johnsAccount.balance); // Ausgabe: 150In diesem Beispiel modifiziert die deposit()-Methode den internen Zustand (die balance-Eigenschaft) der BankAccount-Instanz.
Wir können weitere zustandsverändernde Methoden hinzufügen:
class BankAccount {
constructor(owner, balance = 0) {
this.owner = owner;
this.balance = balance;
}
deposit(amount) {
this.balance += amount;
}
withdraw(amount) {
if (amount <= this.balance) {
this.balance -= amount;
}
}
transfer(amount, toAccount) {
if (amount <= this.balance) {
this.balance -= amount;
toAccount.balance += amount;
}
}
}Nun können wir unser Bankkonto auf vielfältige Weise manipulieren.
Aufgabe
Gegeben ist eine Thermostat Klasse. Ihre Aufgabe ist es, Methoden hinzuzufügen, die den Temperaturzustand ändern:
increaseTemp()– erhöht die Temperatur um 1 GraddecreaseTemp()– verringert die Temperatur um 1 Grad
Spickzettel
Methoden in JavaScript-Klassen können den Zustand (Eigenschaften) eines Objekts ändern.
Beispiel für eine Klasse mit zustandsändernden Methoden:
class BankAccount {
constructor(owner, balance = 0) {
this.owner = owner;
this.balance = balance;
}
deposit(amount) {
this.balance += amount;
}
withdraw(amount) {
if (amount <= this.balance) {
this.balance -= amount;
}
}
transfer(amount, toAccount) {
if (amount <= this.balance) {
this.balance -= amount;
toAccount.balance += amount;
}
}
}Verwendung von zustandsändernden Methoden:
const johnsAccount = new BankAccount("John", 100);
console.log(johnsAccount.balance); // Outputs: 100
johnsAccount.deposit(50);
console.log(johnsAccount.balance); // Outputs: 150Probier es selbst
import { Thermostat } from './thermostat.js';
// Testcode - nicht ändern
const livingRoom = new Thermostat("Living Room", 20);
livingRoom.increaseTemp();
livingRoom.increaseTemp();
console.log(livingRoom.currentTemp); // Sollte 22 ausgeben
livingRoom.decreaseTemp();
console.log(livingRoom.currentTemp); // Sollte 21 ausgeben
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