DevPath · Aprenda a programar ESPTEN

Programação orientada a objetos

Classes, constructor e métodos

Classes

Uma classe é um modelo para criar objetos do mesmo tipo. Define quais dados eles terão (no constructor) e o que podem fazer (os métodos).

class Pessoa {
  constructor(nome, idade) {
    this.nome = nome;
    this.idade = idade;
  }

  saudar() {
    return `Olá, sou ${this.nome}`;
  }
}

const ana = new Pessoa("Ana", 30);
console.log(ana.saudar()); // "Olá, sou Ana"

Protótipos: o que há por baixo

As classes são uma sintaxe mais cômoda sobre o sistema de protótipos do JavaScript. Os métodos não são copiados em cada objeto: eles vivem em um objeto compartilhado (o protótipo) e todas as instâncias o consultam. Por isso criar mil pessoas não duplica mil vezes o método saudar.

Exemplos

Definir uma classe e criar instâncias

class Retangulo {
  constructor(largura, altura) {
    this.largura = largura;
    this.altura = altura;
  }
  area() {
    return this.largura * this.altura;
  }
}
const r = new Retangulo(4, 3);
console.log("Área:", r.area());
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 →
← Objetos e thisHerança e encapsulamento →