Criando classes em JavaScript
Seja bem-vindo à segunda aula do módulo 6! Nesta jornada, você se tornará um especialista em criar classes em JavaScript, dominando a arte de definir estruturas e comportamentos de objetos de maneira eficiente e reutilizável.
Prepare-se para explorar os diversos recursos disponíveis para construir classes robustas e flexíveis, expandindo seus conhecimentos em POO.
Dominando a criação de classes:
Imagine um programa que precisa gerenciar informações de diferentes tipos de produtos, como livros, roupas e eletrônicos.
Ao invés de criar código repetitivo para cada tipo de produto, você pode utilizar classes para definir as características e comportamentos específicos de cada tipo, centralizando e organizando seu código.
Definindo classes:
- Utilize a palavra-chave class para definir o nome da classe e o construtor.
- O construtor define as propriedades iniciais de um objeto.
Exemplo:
class Produto { constructor(nome, preco) { this.nome = nome; this.preco = preco; } // Método para calcular o desconto calcularDesconto(percentual) { return this.preco * (1 - percentual); } }
Criando objetos:
- Utilize a palavra-chave
new
para criar um novo objeto a partir de uma classe.
Exemplo:
var livro = new Produto("O Senhor dos Anéis", 50); console.log("Nome do livro:", livro.nome); // O Senhor dos Anéis console.log("Preço do livro:", livro.preco); // 50 var desconto = livro.calcularDesconto(0.1); console.log("Desconto do livro:", desconto); // 5
Modificadores de acesso:
- Utilize
public
para tornar propriedades e métodos acessíveis em qualquer lugar. - Utilize
private
para tornar propriedades e métodos acessíveis apenas dentro da classe. - Utilize
protected
para tornar propriedades e métodos acessíveis apenas dentro da classe e em suas classes filhas.
Exemplo:
class Pessoa { constructor(nome) { this._nome = nome; // Propriedade privada } getNome() { // Método público que retorna o nome return this._nome; } setNome(nome) { // Método público que define o nome this._nome = nome; } } var pessoa = new Pessoa("João"); console.log("Nome da pessoa:", pessoa.getNome()); // João // Não é possível acessar a propriedade _nome diretamente // pessoa._nome = "Maria"; pessoa.setNome("Maria"); console.log("Nome da pessoa após a alteração:", pessoa.getNome()); // Maria
Métodos estáticos:
- Utilize métodos estáticos para definir funcionalidades que não dependem de um objeto específico.
Exemplo:
JavaScript
class Produto { static calcularImposto(valor) { return valor * 0.1; } } var imposto = Produto.calcularImposto(100); console.log("Imposto:", imposto); // 10
Desafio:
- Crie um script JavaScript que define uma classe
Pessoa
com as propriedadesnome
eidade
. - Crie um método
apresentar
que exibe o nome e a idade da pessoa. - Crie um método estático
gerarId
que gera um número aleatório para identificar cada pessoa. - Crie um objeto
pessoa
da classePessoa
e utilize os métodosapresentar
e gerarId.
Agora que você já aprendeu sobre como criar classes em JavaScript, vamos dar um passo além e explorar os conceitos fundamentais da programação orientada a objetos: encapsulamento, herança, polimorfismo e abstração.
Esses conceitos nos permitem criar estruturas mais complexas e flexíveis em nossos programas, proporcionando organização, reutilização de código e uma melhor compreensão do sistema como um todo.
Prepare-se para mergulhar nesse mundo fascinante da orientação a objetos e descobrir como esses conceitos podem elevar a qualidade e eficiência de seus projetos!