Menu
Coddy logo textTech

Métodos que modifican el estado

Parte de la sección Programación Orientada a Objetos del Journey de JavaScript de Coddy. Lección 15 de 56.

Los métodos en las clases de JavaScript pueden modificar el estado (propiedades) de un objeto. Esta es una de las características clave de la programación orientada a objetos.

Vamos a crear una clase BankAccount sencilla:

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

Ahora vamos a crear una instancia y modificar su estado:

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

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

En este ejemplo, el método deposit() modifica el estado interno (la propiedad balance) de la instancia BankAccount.

Podemos añadir más métodos que modifiquen el estado:

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

Ahora podemos manipular nuestra cuenta bancaria de múltiples maneras.

challenge icon

Desafío

Se te proporciona una clase Thermostat. Tu tarea es añadir métodos que modifiquen su estado de temperatura:

  1. increaseTemp() - aumenta la temperatura en 1 grado
  2. decreaseTemp() - disminuye la temperatura en 1 grado

Pruébalo tú mismo

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

// Código de prueba - no modificar
const livingRoom = new Thermostat("Living Room", 20);

livingRoom.increaseTemp();
livingRoom.increaseTemp();
console.log(livingRoom.currentTemp); // Debería mostrar 22

livingRoom.decreaseTemp();
console.log(livingRoom.currentTemp); // Debería mostrar 21
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Programación Orientada a Objetos

Practica por tu cuenta: Compilador de JavaScript online