Desafio de Revisão
Parte da seção Programação Orientada a Objetos do Journey de JavaScript da Coddy — lição 46 de 56.
Desafio
Você recebeu uma classe UserProfile com a propriedade username já implementada. Sua tarefa é completar a implementação para a propriedade email usando getters e setters:
- Adicione um getter para
emailque retorne o valor atual do e-mail - Adicione um setter para
emailque:- Valide se o e-mail contém o caractere '@'
- Se for válido:
- Atualize o e-mail para o novo valor
- Exiba no log exatamente:
Email updated to [newEmail]
- Se for inválido:
- Exiba no log exatamente:
Invalid email! - NÃO atualize o e-mail
- Exiba no log exatamente:
Experimente você mesmo
import { UserProfile } from './user.js';
// Código de teste - não modifique
const user = new UserProfile("alice123", "alice@email.com");
user.email = "bob@email.com"; // Válido - deve registrar sucesso
user.email = "invalid-email"; // Inválido - deve registrar erro
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ão