Especialização em Sistemas com Java 21 LTS • Capítulo 08


🗺️ Mapa Conceitual do Tópico

classDiagram
    class StatusContrato {
        <<enumeration>>
        RASCUNHO
        EM_VIGENCIA
        SUSPENSO
        FINALIZADO
    }

    class Contratante {
        -String cnpj
        -String razaoSocial
        +getCnpj() String
        +getRazaoSocial() String
    }

    class ContratoB2B {
        -String idContrato
        -Contratante contratante
        -double valorMensal
        -StatusContrato status
        +ativar() void
    }

    ContratoB2B o-- Contratante : Composição (Tem-Um)
    ContratoB2B --> StatusContrato : Estado do Contrato

✨ 1. Enumerações Ricas (enum) em Java

Em Java, enum é um tipo de classe especial que pode conter atributos, construtores privados e métodos próprios, garantindo segurança de tipos (Type-Safety) em tempo de compilação.


🧩 2. Composição de Objetos (“Tem-Um”)

Composição é a relação de associação onde um objeto complexo é construído a partir de referências para outros objetos menores, promovendo alto reaproveitamento e baixo acoplamento.


💻 Exemplo Prático e Compilável em Java 21

// ContratoB2B.java - Modelagem de Domínio com Enum e Composição
package com.empresa.contratos;

public class ContratoB2B {
    public enum StatusContrato { RASCUNHO, VIGENTE, CANCELADO }

    public record Contratante(String cnpj, String razaoSocial) {}

    private final String idContrato;
    private final Contratante contratante;
    private final double valorMensal;
    private StatusContrato status;

    public ContratoB2B(String idContrato, Contratante contratante, double valorMensal) {
        this.idContrato = idContrato;
        this.contratante = contratante;
        this.valorMensal = valorMensal;
        this.status = StatusContrato.RASCUNHO;
    }

    public void ativar() {
        if (this.status != StatusContrato.RASCUNHO) throw new IllegalStateException("Contrato não está em rascunho.");
        this.status = StatusContrato.VIGENTE;
    }

    public StatusContrato getStatus() { return status; }
}

🔗 Recursos Pedagógicos do Capítulo 08

Recurso Didático Finalidade Link de Acesso
📊 Slides de Aula Apresentação visual interativa com Dark Mode e suporte a teclado Ver Slides
🧠 Quiz Formativo Teste interativo de fixação com feedback imediato por alternativa Fazer Quiz
💻 Exemplos de Código Demonstrações funcionais compiláveis com saída no console Ver Exemplos
🧩 Exercícios em 4 Níveis Lista progressiva de fixação com gabarito em bloco colapsável Resolver Exercícios

📅 Capítulo Anterior 📚 Sumário de Tópicos 🧬 Próximo Capítulo