DevPath · Aprenda a programar ESPTEN

Projetos práticos

Modelar com classes

Modelar um sistema com classes

Quando um projeto lida com estado que muda (uma lista de tarefas, um carrinho, um inventário), as classes ajudam a agrupar os dados e as operações que atuam sobre eles.

class Carrinho {
  constructor() {
    this.itens = [];
  }
  adicionar(produto, preco) {
    this.itens.push({ produto, preco });
  }
  remover(produto) {
    this.itens = this.itens.filter((i) => i.produto !== produto);
  }
  total() {
    return this.itens.reduce((acc, i) => acc + i.preco, 0);
  }
  get quantidade() {
    return this.itens.length;
  }
}

const carrinho = new Carrinho();
carrinho.adicionar("livro", 20);
carrinho.adicionar("café", 5);
console.log(carrinho.total());      // 25
console.log(carrinho.quantidade);   // 2

Boas práticas

Essa forma de pensar — dados + comportamento juntos — é a base da programação orientada a objetos.

Exemplos

Uma classe com estado e métodos

class Contador {
  constructor() { this.valor = 0; }
  subir() { this.valor++; return this; }
  baixar() { this.valor--; return this; }
}
const c = new Contador();
c.subir().subir().baixar();
console.log("Valor final:", c.valor);
Coloque isto em prática

O DevPath é um curso prático: aqui você lê a teoria; no app você a coloca em prática com exercícios que rodam de verdade, offline.

Comece grátis no app →
← Processar dados com map, filter e reduceVer o módulo →