Abstraindo um Bootcamp Usando Orientação a Objetos em Java
Este projeto foi desenvolvido como um exemplo prático para o bootcamp da DIO, com o objetivo de consolidar os conceitos de Programação Orientada a Objetos (POO), Collections e Stream API na linguagem Java. A ideia central é simular a estrutura de um bootcamp, com seus participantes, cursos e mentorias.
🚀 Objetivo do Projeto
O principal objetivo deste projeto foi colocar em prática os fundamentos do Java, permitindo que os alunos pudessem:
Aplicar os princípios de POO para criar classes que representam entidades do mundo real, como Aluno, Curso e Mentoria.
Utilizar Collections para gerenciar e armazenar múltiplos objetos de forma organizada, como a lista de alunos inscritos em um bootcamp ou os conteúdos disponíveis.
Manipular dados com a Stream API, facilitando a obtenção e o processamento de informações armazenadas nas collections de maneira funcional e eficiente.
🧠 Conceitos Aplicados
O projeto exemplifica a aplicação de três pilares essenciais do Java moderno:
Programação Orientada a Objetos (POO): Classes como Bootcamp, Dev, Conteudo, Curso e Mentoria foram criadas para abstrair as entidades do problema. Atributos e métodos foram definidos para representar o estado e o comportamento dessas entidades, demonstrando como a POO torna o código mais modular e reutilizável.
Collections: Foram utilizadas estruturas de dados como List e Set para armazenar e organizar objetos. Por exemplo, a lista de conteúdos de um bootcamp e o conjunto de alunos inscritos foram gerenciados por meio de collections, mostrando como elas são cruciais para a manipulação de dados em memória.
Stream API: A API de Streams foi empregada para realizar operações complexas sobre as collections de forma concisa. Isso inclui a filtragem, mapeamento e redução de dados, permitindo, por exemplo, calcular o XP total de um aluno de forma elegante e expressiva.
📈 Sistema de XP e Nível (Diferencial)
Para adicionar um diferencial ao projeto, um sistema de XP (Pontos de Experiência) e Nível foi implementado. Cada vez que um aluno conclui um conteúdo (curso ou mentoria), ele acumula XP, o que o leva a evoluir para o próximo nível. Esse sistema serve para:
Gamificar a experiência do usuário: Incentiva a conclusão dos conteúdos e torna a simulação mais realista e interativa.
Demonstrar lógica de negócio: Mostra como os conceitos de POO e Stream API podem ser combinados para criar lógicas complexas, como o cálculo do XP total e a determinação do nível do aluno com base no progresso.
💡 Conclusão e Aprendizado
Este projeto foi fundamental para entender como a Programação Orientada a Objetos não só organiza o código de forma mais intuitiva, mas também promove a economia e a versatilidade. A criação de classes bem definidas permitiu uma representação clara das entidades e facilitou a manutenção do código.
O uso de Collections se mostrou indispensável para a gestão de dados dinâmicos, permitindo que as informações fossem armazenadas e acessadas de forma eficiente durante a execução do programa.
Por fim, a Stream API demonstrou seu poder ao simplificar operações complexas sobre coleções, tornando o código mais legível e funcional. O sistema de XP e Nível, em particular, ilustrou como a combinação desses três conceitos pode criar um sistema robusto e claro, ideal para demonstrar o potencial da linguagem Java.