Menu
Coddy logo textTech

Méthodes modifiant l'état

Fait partie de la section Programmation Orientée Objet du Journey JavaScript de Coddy — leçon 15 sur 56.

Les méthodes dans les classes JavaScript peuvent modifier l'état (les propriétés) d'un objet. C'est l'une des caractéristiques clés de la programmation orientée objet.

Créons une classe BankAccount simple :

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

Maintenant, créons une instance et modifions son état :

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

johnsAccount.deposit(50);
console.log(johnsAccount.balance); // Affiche : 150

Dans cet exemple, la méthode deposit() modifie l'état interne (la propriété balance) de l'instance BankAccount.

Nous pouvons ajouter d'autres méthodes de modification d'état :

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

Maintenant, nous pouvons manipuler notre compte bancaire de plusieurs façons.

challenge icon

Défi

On vous donne une classe Thermostat. Votre tâche consiste à ajouter des méthodes qui modifient son état de température :

  1. increaseTemp() - augmente la température de 1 degré
  2. decreaseTemp() - diminue la température de 1 degré

Aide-mémoire

Les méthodes dans les classes JavaScript peuvent modifier l'état (les propriétés) d'un objet.

Exemple d'une classe avec des méthodes modifiant l'état :

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

Utilisation de méthodes modifiant l'état :

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

johnsAccount.deposit(50);
console.log(johnsAccount.balance); // Outputs: 150

Essayez vous-même

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

// Code de test - ne pas modifier
const livingRoom = new Thermostat("Living Room", 20);

livingRoom.increaseTemp();
livingRoom.increaseTemp();
console.log(livingRoom.currentTemp); // Devrait afficher 22

livingRoom.decreaseTemp();
console.log(livingRoom.currentTemp); // Devrait afficher 21
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Programmation Orientée Objet