Sistema de Dispositivos de Casa Inteligente
Parte da seção Programação Orientada a Objetos do Journey de JavaScript da Coddy. Lição 56 de 56.
Desafio
Neste desafio, você deve adicionar o rastreamento estático ao sistema SmartDevice para que possamos monitorar quantos dispositivos há em nossa casa inteligente.
1. Adicione uma propriedade estática à classe SmartDevice:
- Adicione:
static totalDevices = 0;no início da classe
2. Incremente o contador no construtor:
- No construtor de
SmartDevice, adicione:SmartDevice.totalDevices++;
3. Adicione um método estático para obter a contagem:
- Adicione:
static getDeviceCount() { return SmartDevice.totalDevices; }
Experimente você mesmo
import { SmartDevice } from './device.js';
console.log(`Device count: ${SmartDevice.getDeviceCount()}`); // Deve ser 0
const basicDevice1 = new SmartDevice('Smart Plug');
const basicDevice2 = new SmartDevice(' Thermostat');
console.log(`Total devices now: ${SmartDevice.getDeviceCount()}`); // Deve ser 2
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 CircleSobrescrita e Método AreaContador de Formas Estático14Sistema de Gerenciamento de Biblioteca
Projetando a BibliotecaClasse Livro com ComposiçãoValidação do Autor do Livro9Métodos e Propriedades Estáticos
Nível de Classe vs. Nível de InstânciaPropriedades EstáticasMétodos Utilitários EstáticosDesafio de Recapitulação12Getters e Setters
As Palavras-chave get e setPropriedades ComputadasValidação e Efeitos ColateraisDesafio de Revisão15Desafios Finais
Construtor de Personagens de JogoSistema de Produtos de E-commerceSistema de Gestão UniversitáriaSistema de Dispositivos de Casa InteligentePratique por conta própria: Compilador de JavaScript online