Menu
Coddy logo textTech

Metody modyfikujące stan

Część sekcji Programowanie obiektowe ścieżki JavaScript w Coddy. Lekcja 15 z 56.

Metody w klasach JavaScript mogą modyfikować stan (właściwości) obiektu. To jedna z kluczowych cech programowania obiektowego.

Stwórzmy prostą klasę BankAccount:

class BankAccount {
  constructor(owner, balance = 0) {
    this.owner = owner;
    this.balance = balance;
  }
  
  deposit(amount) {
    this.balance += amount;
  }
}

Teraz utwórzmy instancję i zmodyfikujmy jej stan:

const johnsAccount = new BankAccount("John", 100);
console.log(johnsAccount.balance); // Wyświetla: 100

johnsAccount.deposit(50);
console.log(johnsAccount.balance); // Wyświetla: 150

W tym przykładzie metoda deposit() modyfikuje stan wewnętrzny (właściwość balance) instancji BankAccount.

Możemy dodać więcej metod modyfikujących stan:

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;
    }
  }
}

Teraz możemy manipulować naszym kontem bankowym na wiele sposobów.

challenge icon

Wyzwanie

Otrzymujesz klasę Thermostat. Twoim zadaniem jest dodać metody, które modyfikują stan temperatury:

  1. increaseTemp() - zwiększa temperaturę o 1 stopień
  2. decreaseTemp() - zmniejsza temperaturę o 1 stopień

Spróbuj swoich sił

import { Thermostat } from './thermostat.js';

// Kod testowy - nie modyfikuj
const livingRoom = new Thermostat("Living Room", 20);

livingRoom.increaseTemp();
livingRoom.increaseTemp();
console.log(livingRoom.currentTemp); // Powinno wyświetlić 22

livingRoom.decreaseTemp();
console.log(livingRoom.currentTemp); // Powinno wyświetlić 21
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Programowanie obiektowe

Poćwicz samodzielnie: Kompilator JavaScript online