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 um rastreamento estático ao sistema SmartDevice para que possamos monitorar quantos dispositivos existem em nossa casa inteligente.
1. Adicione uma propriedade estática à classe SmartDevice:
- Adicione:
static totalDevices = 0;no topo 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 Circle14Sistema de Gerenciamento de Biblioteca
Projetando a BibliotecaClasse Livro com Composição9Mé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 Inteligente