Sistema de Gestão Universitária
Parte da seção Programação Orientada a Objetos do Journey de JavaScript da Coddy — lição 55 de 56.
Desafio
Neste desafio, temos um sistema universitário com diferentes tipos de pessoas (estudantes, professores) que possuem diferentes papéis e comportamentos.
1. Complete a classe Person:
- Adicione o método
introduce()retornando"Hi, I'm ${name}"
2. Complete a classe Student:
- Sobrescreva
introduce()para retornar${super.introduce()}, a ${this.major} student. Exemplo: "Hi, I'm Alice, a Computer Science student" - Adicione o método
addGrade(grade)que recebe uma nota entre 0 e 100- Validação: Verifique se a nota está entre 0 e 100
- Se for válida: Adicione ao array
this.grades - Se for inválida: Registre no log:
"Grade must be between 0 and 100"
3. Complete a classe Professor:
- Sobrescreva
introduce()para retornar“Prof. ${name} from ${department}”. Exemplo: “Prof. Smith from Computer Science”
Experimente você mesmo
import { Person } from './person.js';
import { Student } from './student.js';
import { Professor } from './professor.js';
// Criar pessoas
const student1 = new Student('Alice', 20, 'Computer Science');
const prof1 = new Professor('Dr. Johnson', 50, 'Mathematics');
console.log(student1.introduce()); // "Hi, I'm Alice, a Computer Science student"
console.log(prof1.introduce()) // "Prof. Dr. Johnson from Mathematics"
student1.addGrade(85);
student1.addGrade(90);
student1.addGrade(95);
console.log(`${student1.name}'s GPA: ${student1.getGPA()}`); // ~3.6
student1.addGrade(105); // Deve registrar: "Grade must be between 0 and 100"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