Este repositório centraliza os projetos e exercícios que desenvolvi durante minha formação técnica na ETEC de Sorocaba (Fernando Prestes - AMS). O foco principal desta coleção é demonstrar o domínio prático sobre os pilares mais complexos da Programação Orientada a Objetos: Herança e Polimorfismo Dinâmico.
"Sempre estudando, evoluindo a arquitetura e melhorando o código." 🚀
Projeto focado na estruturação de hierarquias limpas e reaproveitamento de código através de herança e polimorfismo de métodos.
- Especialização por Herança: Criação de subclasses (
OvernightTicketeFirstClassTicket) que estendem a classe base (Ticket), herdando e protegendo atributos como dados do passageiro e assentos. - Polimorfismo Dinâmico: Sobrescrita do método
ticketInfo()para garantir que o Java descubra, em tempo de execução, a regra de cálculo e formatação de texto correta para cada bilhete (seja aplicando descontos noturnos de madrugada ou taxas de luxo premium). - Isolamento de Memória com Métodos Estáticos: Uso de métodos de classe (
static) para consultar taxas globais do sistema de forma direta na interface, sem a necessidade de instanciar objetos temporários.
Evolução do uso do polimorfismo para cenários comerciais complexos, simulando o comportamento de regras de faturamento de um e-commerce/streaming.
- Polimorfismo para Lógica de Negócios: Implementação do método polimórfico
netPrice()na classe base. O gerenciador de assinaturas utiliza esse método para varrer uma lista mista de planos (Standard, Premium e Corporate) e calcular o faturamento bruto em tempo real com base no tipo real de cada objeto na memória Heap. - Encapsulamento Rígido com Modificadores: Uso estratégico do modificador
protectedpara compartilhamento seguro do preço base com as subclasses, e do modificadorfinalna coleção interna do gerenciador, impedindo reatribuições ou deleções acidentais da lista. - Programação Defensiva: Substituição de condicionais estruturados (
if/else) por funções de limite matemático como oMath.maxpara garantir pisos mínimos de venda no plano corporativo de forma elegante e limpa.
- Herança (
extends&super): Domínio na criação de árvores genealógicas de classes, sabendo o momento exato de reaproveitar construtores e comportamentos da classe mãe, evitando duplicação e código redundante. - Polimorfismo Dinâmico (
@Override): Capacidade de fazer com que objetos de tipos diferentes respondam à mesma mensagem de formas específicas, permitindo que os gerenciadores tratem todas as subclasses de forma genérica e segura. - Encapsulamento Avançado: Aplicação de modificadores de acesso adequados (
private,protected,publicefinal) para proteger a integridade dos dados e expor apenas o necessário para a camada de aplicação. - Java Collections Framework: Gerenciamento eficiente de listas dinâmicas (
ArrayList) contendo coleções de objetos polimórficos encapsulados.
- Linguagem: Java ☕ (JDK 25)
- IDE: IntelliJ IDEA 2026
- Paradigma: Programação Orientada a Objetos (POO)
- Controle de Versão: Git / GitHub
Este espaço demonstra a transição da lógica de programação estruturada simples para o desenvolvimento de software profissional orientado a objetos. A separação clara de responsabilidades entre classes de aplicação, entidades de dados e gerenciadores polimórficos reflete a busca constante por um código limpo, escalável e de fácil manutenção.
Conecte-se comigo: