Desafio de Recapitulação
Parte da seção Programação Orientada a Objetos do Journey de JavaScript da Coddy — lição 6 de 56.
Desafio
Desafio de Recapitulação: Construa um Termostato Inteligente
Pratique tudo o que você aprendeu neste capítulo criando um objeto de termostato inteligente.
Sua tarefa:
- Crie uma função construtora chamada
Thermostatque recebe um parâmetroroom - Dentro do construtor, defina estas propriedades usando
this:room(a partir do parâmetro)temperature(definida como 22)isOn(definida como true)
- Adicione estes métodos dentro do construtor usando
this:increaseTemp()- aumenta a temperatura em 1 graudecreaseTemp()- diminui a temperatura em 1 graugetStatus()- retorna: "[room] thermostat: [temperature]°C"
Experimente você mesmo
// TODO: Crie uma função construtora chamada Thermostat que recebe um parâmetro room
// TODO: Dentro do construtor, defina estas propriedades:
// - room (a partir do parâmetro)
// - temperature (definida como 22)
// - isOn (definida como true)
// TODO: Adicione um método chamado increaseTemp() que aumenta a temperatura em 1 grau
// TODO: Adicione um método chamado decreaseTemp() que diminui a temperatura em 1 grau
// TODO: Adicione um método chamado getStatus() que retorna: "[room] thermostat: [temperature]°C"
// Teste seu código - não modifique esta parte
const livingRoom = new Thermostat("Living Room");
livingRoom.increaseTemp();
livingRoom.increaseTemp();
console.log(livingRoom.getStatus()); // Deve imprimir: "Living Room thermostat: 24°C"
const bedroom = new Thermostat("Bedroom");
bedroom.decreaseTemp();
bedroom.decreaseTemp();
console.log(bedroom.getStatus()); // Deve imprimir: "Bedroom thermostat: 20°C"
Todas as lições de Programação Orientada a Objetos
1Objetos e a Palavra-chave this
Revisão Rápida: ObjetosAdicionando Métodos a ObjetosEntendendo a Palavra-chave thisFunções ConstrutorasA Palavra-chave newDesafio de Recapitulação7Herança e a palavra-chave extends
HerançaA relação "é um"A palavra-chave extendsO método super()Herdando propriedades e métodosDesafio de recapitulação10Polimorfismo
O que é Polimorfismo?Sobrescrevendo Métodos HerdadosUsando superDesafio de Recapitulação13Composição vs. Herança
A relação "tem um" vs. "é um"Os limites da herança profundaConstruindo objetos2Organizando o Código
O que são Módulos?Exportando com exportImportando com importExportações Default vs. Nomeadas5Encapsulamento e Acesso
EncapsulamentoCampos de Classe Públicos e PrivadosMétodos PrivadosDesafio de Recapitulação8Organizando Código POO
Organizar Classes em Módulos11Projeto: Um Renderizador de Formas
Configuração: Classe Shape e ExportaçãoHerança da Classe Circle14Sistema de Gerenciamento de Biblioteca
Projetando a BibliotecaClasse Livro com Composição