Na aula anterior, aprendemos o que são classes em JavaScript e quando faz sentido usá-las.

Agora vamos entender melhor duas peças fundamentais de qualquer classe:

o constructor e os métodos.

🎯 Objetivo da aula

Ao final desta aula, você será capaz de:

  • Entender o papel do constructor
  • Criar e organizar métodos corretamente
  • Diferenciar dados de comportamento
  • Evitar erros comuns com this
  • Escrever classes mais claras e legíveis

O que é o constructor?

O constructor é um método especial que:

  • é executado automaticamente
  • roda quando usamos new
  • serve para inicializar o objeto

Ele define o estado inicial da instância.

Exemplo básico de constructor

 
  class Produto { constructor(nome, preco) { this.nome = nome; this.preco = preco; } }
  const produto = new Produto("Notebook", 3500);
  console.log(produto.nome); // Saída será: Notebook
  console.log(produto.preco); // Saída será: 3500

Aqui:

  • o objeto nasce com nome e preco
  • o constructor define esse estado

O que são métodos?

Métodos são funções que:

  • pertencem à classe
  • operam sobre os dados da instância
  • representam comportamento

Eles usam this para acessar o estado do objeto.

Adicionando métodos à classe

 
  class Produto { constructor(nome, preco) { this.nome = nome; this.preco = preco; }
  aplicarDesconto(percentual) {
    this.preco = this.preco - (this.preco * percentual);
  }
  exibirPreco() {
    console.log(Preço: R$ ${this.preco});
  }
}
const produto = new Produto("Notebook", 3500);
produto.aplicarDesconto(0.1);
produto.exibirPreco(); // Saída será: Preço: R$ 3150

Estado vs comportamento

Uma boa classe separa claramente:

  • Estado → propriedades (this.nome, this.preco)
  • Comportamento → métodos (aplicarDesconto, exibirPreco)

Isso torna o código:

  • mais legível
  • mais organizado
  • mais fácil de manter

Cuidado com o this

Dentro de métodos de classe:

  • this aponta para a instância
  • desde que o método seja chamado corretamente
Perder o contexto do this é um erro comum.
 
  const exibir = produto.exibirPreco; 
  exibir(); // ❌ this indefinido (ou erro), pois não há uma instância associada à chamada 

O método perdeu o vínculo com a instância.

Solução comum: bind

 
  const exibir = produto.exibirPreco.bind(produto); 
  exibir(); // ✅ funciona corretamente, pois forçamos o contexto de execução 

Mais adiante veremos alternativas melhores com arrow functions e campos de classe.

Métodos não são recriados a cada instância

Um ponto importante:

Os métodos ficam no prototype da classe, não dentro de cada objeto.

Isso significa:

  • menos uso de memória
  • melhor performance

Boas práticas iniciais

  • Use o constructor apenas para inicialização
  • Evite lógica pesada no constructor
  • Mantenha métodos pequenos e claros
  • Uma classe deve ter uma responsabilidade principal

Resumo da aula para nunca mais esquecer

  • constructor inicializa o estado
  • Métodos representam comportamento
  • this aponta para a instância
  • Estado e comportamento devem ser claros
  • Organização é mais importante que quantidade

Na próxima aula, vamos evoluir isso com Herança, entendendo quando reutilizar e quando evitar.


HARDWARE

Entendendo o seu computador

O que há dentro do meu computador?

Existem alguns componentes fundamentais presentes dentro do seu computador e é muito importante que você conheça um pouco sobre eles, seja para argumentar com algum vendedor durante a compra de um novo PC ou para identificar alguma atitude desleal de algum técnico que esteja te passando um orçamento para reparo. Na seção Raio-X aqui do Contém Bits você pode conhecer e entender mais detalhadamente sobre cada componente, ou também pode clicar abaixo no componente que deseja, para conhecê-lo melhor.

  • Gabinetes

  • Placas-Mãe

  • Processadores

  • Memória

  • Fontes

  • Drives Ópticos

  • Discos Rígidos

  • SSD

  • Placas de Som

  • Placas de Vídeo

Você Sabia?

Desde o seu lançamento, em 1985, o fantástico jogo Tetris vende pelo menos 70 milhões de unidades por ano em todo o mundo! Os dados são oficiais e fornecidos pela THQ, uma das distribuidoras do título.


O personagem Mario só possui bigode porque quando ele foi criado, em 1981, a resolução de tela dos equipamentos disponíveis não permitia que fosse desenhada uma boca, então os desenvolvedores fizeram o grande bigode para contornar essa limitação tecnológica.


A partida mais longa do clássico Space Invaders durou incríveis 38 horas e 32 minutos e esta façanha foi conseguida por um jogador de apenas 12 anos! O jogo, claro, podia ser pausado para alimentação e descanso, mas ainda assim o recorde, estabelecido no dia 02/09/1980, ainda não foi quebrado. Saiba mais.


A IBM detém o recorde de patentes em um único ano, atingindo a marca de 4186 registros no ano de 2008. Clique aqui e saiba mais sobre esta gigante do mundo da tecnologia.


A empresa Take-Two pagou à Infogrames mais de 22 milhões de dólares pelos direitos de Civilization, em novembro de 1994. Ainda sobre este título, Sid Meier, um dos seus fundadores, é o profissional da área dos games mais premiado em todo o mundo.