Conteúdo do curso
Apresentação do curso
0/1
Curso de JavaScript para Iniciantes: Fundamentos e Prática
Sobre a Aula

Conceitos básicos de programação orientada a objetos

 

Seja bem-vindo ao módulo 6! Nesta jornada, você desbravará o fascinante universo da Programação Orientada a Objetos (POO), um paradigma que permite organizar e estruturar seus programas de forma mais eficiente, modular e reutilizável.

Prepare-se para aprender os conceitos básicos da POO e como aplicá-los em seus projetos, elevando seu nível de proficiência como desenvolvedor.

A programação orientada a objetos é como construir uma casa com peças de Lego.

Cada peça de Lego é como uma classe, que define um tipo de objeto com suas características (atributos) e ações (métodos).

Por exemplo, podemos ter uma classe Carro com atributos como cor, modelo e velocidade, e métodos como acelerar e frear.

A partir dessas classes, podemos criar objetos (instâncias) específicos, assim como montar diferentes modelos de carros com peças de Lego.

Cada objeto tem suas próprias características e pode executar os métodos definidos na classe.

Um conceito importante é a herança, que é como uma família de carros relacionados.

Por exemplo, podemos ter uma classe CarroEsportivo que herda características da classe Carro, mas também possui características específicas, como a velocidade máxima.

Outro conceito é o polimorfismo, que é como diferentes tipos de carros respondendo à mesma ação de forma diferente.

Por exemplo, tanto um carro esportivo quanto um carro familiar podem ter um método acelerar, mas cada um terá um comportamento específico.

A abstração é como criar uma representação simplificada dos carros, focando apenas nos detalhes importantes.

Por exemplo, podemos criar uma classe abstrata Veiculo que define características comuns a todos os veículos, como número de rodas, e deixar as classes mais específicas, como Carro e Moto, detalharem suas particularidades.

Vamos colocar esse explicação em forma de código para melhorar a entendimento:

// Definindo a classe abstrata Veiculo
class Veiculo {
  constructor(numeroDeRodas) {
    this.numeroDeRodas = numeroDeRodas;
  }

  acelerar() {
    console.log('Acelerando o veículo.');
  }

  frear() {
    console.log('Freando o veículo.');
  }
}

// Definindo a classe Carro que herda de Veiculo
class Carro extends Veiculo {
  constructor(cor, modelo, velocidade) {
    super(4); // Carros têm quatro rodas
    this.cor = cor;
    this.modelo = modelo;
    this.velocidade = velocidade;
  }

  // Método específico para Carro
  abrirPorta() {
    console.log('Abrindo a porta do carro.');
  }
}

// Definindo a classe CarroEsportivo que herda de Carro
class CarroEsportivo extends Carro {
  constructor(cor, modelo, velocidadeMaxima) {
    super(cor, modelo, 0); // Velocidade inicial é zero
    this.velocidadeMaxima = velocidadeMaxima;
  }

  // Sobrescrevendo o método acelerar para um comportamento específico
  acelerar() {
    console.log('Acelerando o carro esportivo. Velocidade máxima: ' + this.velocidadeMaxima);
  }
}

// Definindo a classe Moto que herda de Veiculo
class Moto extends Veiculo {
  constructor(cor, modelo) {
    super(2); // Motos têm duas rodas
    this.cor = cor;
    this.modelo = modelo;
  }

  // Sobrescrevendo o método frear para um comportamento específico
  frear() {
    console.log('Freando a moto. Cuidado com equilíbrio!');
  }
}

// Criando instâncias e demonstrando os conceitos
const carroEsportivo = new CarroEsportivo('Vermelho', 'Esportivo', 250);
const moto = new Moto('Preto', 'Custom');

carroEsportivo.acelerar();
carroEsportivo.abrirPorta();

moto.acelerar();
moto.frear();

Neste exemplo, a classe Veiculo é a classe abstrata que contém características comuns a todos os veículos. As classes Carro e Moto herdam de Veiculo, demonstrando herança.

A classe CarroEsportivo herda de Carro e sobrescreve o método acelerar, exemplificando polimorfismo. O código também mostra a abstração ao focar em características essenciais para cada classe.

Desafio:

  1. Crie um script JavaScript que define uma classe Pessoa com as propriedades nome e idade.
  2. Crie um método apresentar que exibe o nome e a idade da pessoa.
  3. Crie um objeto pessoa da classe Pessoa e utilize o método apresentar.

Em resumo, a programação orientada a objetos permite organizar e reutilizar código de forma modular, assim como construir diferentes modelos de carros com peças de Lego.

Lembre-se:

  • A POO é um paradigma fundamental para o desenvolvimento de software de grande porte.
  • Os conceitos básicos da POO te guiarão na criação de programas mais organizados, eficientes e reutilizáveis.
  • Comece com exemplos simples e pratique a criação de classes e objetos para dominar a POO.

Na próxima aula vamos detalhar cada conceito desse para reforçar a sua base. Está preparado? Então vamos lá!

Entrar na conversa
Rolar para cima