Menu
Coddy logo textTech

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: 150

In 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.

challenge icon

Aufgabe

Gegeben ist eine Thermostat Klasse. Ihre Aufgabe ist es, Methoden hinzuzufügen, die den Temperaturzustand ändern:

  1. increaseTemp() – erhöht die Temperatur um 1 Grad
  2. decreaseTemp() – 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: 150

Probier 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
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Objektorientierte Programmierung