Classes em JavaScript são estruturas que descrevem estados e comportamentos de um determinado objeto. É apenas uma forma diferente de escrever funções em JavaScript; os códigos das classes são convertidos para função.

1. O que são Classes?

Classes são uma forma de encapsular dados e comportamentos (métodos) em um único bloco. Elas servem como um molde para criar objetos, permitindo a criação de múltiplas instâncias que compartilham as mesmas propriedades e métodos.

2. Sintaxe básica das Classes

A sintaxe para definir uma classe é bastante simples. Aqui está a estrutura básica:

class NomeDaClasse {
  constructor(param1, param2) {
    // Inicialização das propriedades
    this.propriedade1 = param1;
    this.propriedade2 = param2;
  }

  metodo1() {
    // Código do método
  }
}

Exemplo básico de Classe

class Carro {
  constructor(marca, modelo, ano) {
    this.marca = marca;
    this.modelo = modelo;
    this.ano = ano;
  }

  info() {
    return `${this.marca} ${this.modelo} - ${this.ano}`;
  }
}

const carro1 = new Carro("Toyota", "Corolla", 2020);
const carro2 = new Carro("Honda", "Civic", 2019);

console.log(carro1.info()); // "Toyota Corolla - 2020"
console.log(carro2.info()); // "Honda Civic - 2019"

3. Herança de Classes

Um dos principais recursos das classes é a herança, que permite que uma classe herde propriedades e métodos de outra. Isso promove a reutilização de código e a criação de hierarquias de classes.

Exemplo de Herança

class Veiculo {
  constructor(marca, modelo) {
    this.marca = marca;
    this.modelo = modelo;
  }

  info() {
    return `${this.marca} ${this.modelo}`;
  }
}

class Carro extends Veiculo {
  constructor(marca, modelo, ano) {
    super(marca, modelo); // Chama o construtor da classe pai
    this.ano = ano;
  }

  infoCompleta() {
    return `${super.info()} - ${this.ano}`;
  }
}

const carro1 = new Carro("Ford", "Mustang", 2021);
console.log(carro1.infoCompleta()); // "Ford Mustang - 2021"

4. Métodos estáticos

As classes também podem ter métodos estáticos, que pertencem à classe em si, e não a instâncias individuais. Eles são definidos usando a palavra-chave static.

Exemplo de método estático

class Matematica {
  static soma(a, b) {
    return a + b;
  }
}

console.log(Matematica.soma(5, 10)); // 15

5. Getters e Setters

As classes em JavaScript também suportam getters e setters, que permitem acessar e modificar propriedades de forma controlada.

Exemplo de Getters e Setters

class Retangulo {
  constructor(largura, altura) {
    this.largura = largura;
    this.altura = altura;
  }

  get area() {
    return this.largura * this.altura;
  }

  set dimensao(dimensao) {
    [this.largura, this.altura] = dimensao;
  }
}

const retangulo = new Retangulo(5, 10);
console.log(retangulo.area); // 50
retangulo.dimensao = [10, 20];
console.log(retangulo.area); // 200

As classes em JavaScript proporcionam uma maneira moderna e estruturada de criar objetos e gerenciar herança.

Com uma sintaxe mais clara e recursos poderosos como herança, métodos estáticos e getters/setters, as classes tornam o desenvolvimento em JavaScript mais eficiente e intuitivo.

Experimente usar classes em seus projetos para ver como elas podem simplificar sua lógica e melhorar a organização do código!

QUER SER UM PROGRAMADOR FULL-STACK E DOMINAR AS PRINCIPAIS TECNOLOGIAS DO MERCADO?

Aprenda através de projetos reais e aulas práticas. São 20 cursos completos + cursos bônus. Grupos privados exclusivos, atualizações constantes e lives semanais.

Python, PHP, Java Script, CSS, Node, Angular JS, MySQL, Photoshop, Flutter, AWS, Apache e muito mais!

CLIQUE NA IMAGEM ABAIXO E CONFIRA MAIS DETALHES:

CLIQUE AQUI E SAIBA MAIS

Dúvidas ou sugestões? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
https://youtube.com/criandobits

Tags:

Quer receber GRÁTIS o e-book "Como Formatar um Computador em 5 Minutos"?

Não enviamos spam. Seu e-mail está 100% seguro!

Sobre o Autor

Bene Silva Júnior
Bene Silva Júnior

Bacharel em Sistemas de Informação pelo Instituto Paulista de Pesquisa e Ensino IPEP. Apaixonado por tecnologias e games do tempo da vovó!

0 Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *