Exercícios: Aula 06 - Diagramas de Classe I 📝
O Diagrama de Classes é a espinha dorsal da modelagem estática. Pratique os fundamentos aqui.
1. Anatomia da Classe (Básico 1)
Contexto: Uma classe é composta por três compartimentos principais na representação UML.
Pergunta: Quais são esses três compartimentos e qual a função de cada um deles na modelagem?
2. Segredos bem guardados (Básico 2)
Contexto: Visibilidade é fundamental para o encapsulamento em Orientação a Objetos.
Pergunta: O que significam os símbolos (+) e (-) antes de um atributo ou método? Por que não devemos deixar todos os atributos como públicos?
3. Comportamento vs Estado (Intermediário 1)
Contexto: Classes representam tipos de objetos.
Pergunta: Identifique, em uma classe Carro, dois itens que seriam Atributos e dois que seriam Métodos (Ações).
4. Conectando Objetos (Intermediário 2)
Contexto: Objetos raramente vivem sozinhos; eles se associam.
Pergunta: O que representa uma linha sólida entre duas classes em um diagrama UML? Dê um exemplo real de associação.
5. Desafio: Refatoração de Modelo (Desafio)
Contexto: Você tem uma classe Funcionario com atributos: nome, cpf, rua, numero, cep, cidade.
Pergunta: Como você aplicaria o conceito de Composição para melhorar esse design, separando os dados de endereço em uma classe própria? Desenhe a lógica (ou explique em texto).
---
📚 Gabarito e Soluções Comentadas
Gabarito Explicado
Respostas e explicações para os exercícios da **Aula 06**. --- ### ✅ 1. O que é uma Classe? (Básico) **Resposta Sugerida:** Uma classe é um molde ou modelo que define os atributos (dados) e métodos (comportamentos) de um conjunto de objetos. --- ### ✅ 2. Visibilidade (Básico) **Resposta Sugerida:** * `+` **Público:** Acesso liberado para qualquer classe. * `-` **Privado:** Acesso permitido apenas dentro da própria classe (encapsulamento). --- ### ✅ 3. Atributos vs Métodos (Intermediário) **Explicação:** * **Atributos:** Características (nome, preço, dataNascimento). * **Métodos:** Ações que a classe pode realizar (calcularIdade, salvar, validarCpf). --- ### ✅ 4. Associação Simples (Intermediário) **Diagrama Mermaid:**classDiagram
class Aluno {
+int matricula
}
class Livro {
+String titulo
}
Aluno "1" --> "0..*" Livro : reserva --- ### ✅ 5. Desafio: Encapsulamento (Desafio) **Resolução Sugerida:** Se todos os atributos fossem públicos, qualquer parte do sistema poderia alterar o saldo de uma conta sem passar pela lógica de validação. O encapsulamento (uso de `-` privado) protege a integridade dos dados, exigindo o uso de métodos (setters/getters) para alterá-los. ---