Fase 3 – Controle de Avaliações (Encapsulamento) O coordenador percebe que alunos estavam manipulando as notas diretamente no banco antigo. Agora, você deve garantir segurança e controle no acesso às notas. Desafio: Criar a classe Avaliacao com atributos privados nota, descricao. Permitir atualização da nota apenas via método atribuirNota(valor), validando se está entre 0 e […]
Arquivos de Categoria: Atividades
Fase 4 – Diferentes Tipos de Cursos (Herança e Polimorfismo) Nem todos os cursos funcionam da mesma forma. A universidade possui cursos presenciais e EAD, cada um com regras próprias. Desafio: Criar subclasses CursoPresencial e CursoEAD herdando de Curso. CursoPresencial deve informar sala de aula. CursoEAD deve informar plataforma virtual. Sobrescrever um método detalharCurso() para […]
Fase 5 – Autenticação e Perfis (Interfaces e Abstração) A área de TI exige segurança: alunos, professores e administradores têm acessos diferentes no sistema. Desafio: Criar uma interface de Autenticação com o método autenticar(login, senha). Implementar em Aluno, Professor e Administrador. Criar uma classe abstrata Usuario para generalizar atributos comuns. Fase 6 – Relatórios e […]
Fase 6 – Relatórios e Estatísticas (Polimorfismo e Laços) A diretoria da universidade deseja relatórios automatizados. Você deve implementar relatórios que funcionem de forma genérica para diferentes entidades. Desafio: Criar um método polimórfico gerarRelatorio() em Aluno, Professor e Curso. Exibir informações personalizadas em cada relatório. Implementar um menu para gerar relatórios múltiplos em sequência. Fase […]
Fase 7 – Arquitetura em Camadas (Boa Prática de Projeto) Seu Tech Lead pede que você estruture o sistema de forma mais profissional, separando responsabilidades. Desafio: Organizar o projeto em pacotes: model (entidades). service (regras de negócio). repository (armazenamento temporário em listas). ui (menu interativo). Criar uma classe Main que faça a integração entre as […]
Fase Final – Sistema Educacional Consolidado Chegou o grande momento! A EduConnect vai apresentar o protótipo a investidores e precisa do sistema completo. Desafio: Consolidar todas as funcionalidades. Criar um menu interativo que permita: Cadastrar alunos, professores e cursos. Criar turmas e associar alunos/professores. Registrar avaliações. Gerar relatórios gerais. Testar cenários de sucesso e falha. […]
O desenvolvimento de sistemas envolve lidar com uma série de situações inesperadas que podem comprometer a execução normal de uma aplicação. Em um cenário simples, como um programa de cadastro de produtos, o usuário pode fornecer uma entrada incorreta ao digitar letras em vez de números no campo destinado ao preço. Esse tipo de falha, […]
A linguagem Java, ao longo de sua evolução, incorporou um modelo robusto para o tratamento de exceções, possibilitando que erros sejam capturados e tratados de maneira controlada. Esse mecanismo é baseado em blocos como try, catch e finally, que permitem definir pontos de verificação e de recuperação dentro do código. Dessa forma, em vez de […]
Em sistemas distribuídos e aplicações que dependem de integrações externas, como conexões com bancos de dados ou serviços via rede, a ocorrência de erros é praticamente inevitável. Uma conexão pode ser interrompida por instabilidade na internet, um arquivo pode estar ausente no momento da leitura ou um valor numérico pode ultrapassar os limites esperados. Nesses […]
Outro ponto importante está na separação entre o fluxo normal do programa e o fluxo de tratamento de erros. Sem um mecanismo estruturado, o desenvolvedor precisaria inserir múltiplas verificações condicionais em diversas partes do código, tornando-o confuso e de difícil manutenção. O modelo de exceções de Java, ao contrário, centraliza e organiza o tratamento, permitindo […]
