Pular para conteúdo

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. ---