📊 Capítulo 08: Enumerações & Composição
Especialização em Sistemas com Java
🗺️ Composição de Objetos (Tem-Um) vs Herança (É-Um)
classDiagram
class Pedido {
-UUID id
-Instant instante
-StatusPedido status
+adicionarItem(ItemPedido item)
+removerItem(ItemPedido item)
+total() double
}
class Cliente {
-String nome
-String email
-LocalDate dataNascimento
}
class ItemPedido {
-int quantidade
-double preco
+subTotal() double
}
class Produto {
-String nome
-double preco
}
class StatusPedido {
<<enumeration>>
AGUARDANDO_PAGAMENTO
PROCESSANDO
ENVIADO
ENTREGUE
}
Pedido --> Cliente : tem um
Pedido --> StatusPedido : tem um
Pedido *-- ItemPedido : composto por
ItemPedido --> Produto : referencia
🎯 Slide 1: Enums em Java São Classes Completas!
- Diferente de C e C++, no Java um
enumpode ter atributos, construtores privados e métodos customizados:
public enum NivelAcesso {
ADMIN(1, "Acesso Total"),
USUARIO(2, "Acesso Padrão");
private final int codigo;
private final String descricao;
NivelAcesso(int codigo, String descricao) {
this.codigo = codigo;
this.descricao = descricao;
}
public int getCodigo() { return codigo; }
}
🎯 Slide 2: “Favor Composition over Inheritance”
-
Herança excessiva gera acoplamento frágil: Modificar a superclasse pode quebrar comportamentos de dezenas de subclasses.
- Composição: O objeto delega responsabilidades para outras classes menores e especializadas via atributos, aumentando a flexibilidade do design!
🎯 Slide 3: Relacionamentos 1:1, 1:N e N:N
- Modelagem clara com coleções (
List<ItemPedido> items = new ArrayList<>()) mantendo integridade com métodos de gerenciamento (adicionarItem()).
🔗 Navegação do Capítulo 08
| 📖 Ler Conteúdo Completo | 🧠 Fazer Quiz | 💻 Ver Exemplos | 🧩 Exercícios |
Slide 1 de 1
Atalhos: ← → Navegar • Espaço Avançar • F Tela Cheia • Home Início • End Fim