🚀 Capítulo 06: Classes e Atributos (Tema: Pokémon)
NOTE
Este capítulo utiliza a temática de Pokémon para explicar os conceitos de classes. O Professor Carvalho precisa de um sistema para catalogar as criaturas na Pokédex!
1. 🎯 Objetivo da Aula
Compreender o conceito de Classe, Atributos, Métodos e Visibilidade (Encapsulamento) no Diagrama de Classes.
2. 🏢 O Cenário Prático (Seu Desafio)
Você é o assistente do Professor Carvalho. Ele quer que você crie o “molde” (a classe) para cadastrar os monstros na Pokédex. Todos os Pokémon têm características em comum (nome, tipo) e realizam ações em comum (atacar). Seu desafio é modelar a classe Pokemon no Draw.io!
3. 🧠 Fundamentos: A Teoria Traduzida
O Diagrama de Classes é o diagrama estrutural mais importante da UML. Ele descreve os objetos que formam o sistema.
📦 O que é uma Classe?
É um retângulo dividido em 3 partes:
- Nome da Classe: No topo (ex:
Pokemon). - Atributos: As características ou dados (ex:
vida,nivel). - Métodos: As ações ou funções (ex:
atacar(),evoluir()).
🔒 Visibilidade (Encapsulamento)
Nem tudo deve ser público. Usamos símbolos para definir quem pode ver o dado:
+Público: Qualquer um pode ver/usar (ex: métodos).-Privado: Só a própria classe pode ver/mudar (ex: atributos, para evitar trapaças!).
4. 📖 Exemplo Guiado: Desenhando no Draw.io
- Abra o Draw.io e procure pela categoria UML.
- Arraste o elemento que parece uma tabela com 3 linhas (Class).
- No topo, digite
Pokemon. - No meio, digite os atributos com a visibilidade:
- nome: String- tipo: String- hp: int
- Embaixo, digite os métodos:
+ atacar()+ receberDano(pontos: int)
5. 🛠️ Prática Obrigatória 1: Criando a Classe Treinador
No Draw.io, crie uma nova classe chamada Treinador.
- Atributos (Privados):
nome(String),quantidadeInsignias(int). - Métodos (Públicos):
capturarPokemon(),desafiarLider(). - Exporte a imagem da classe.
6. 🛠️ Prática Obrigatória 2: Por que Privado?
Por que deixamos os atributos como hp (vida) e nivel como Privados (-) e não públicos? O que aconteceria se qualquer um pudesse mudar a vida do Pokémon direto?
7. 📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)
- Faça o Commit: No GitHub Desktop, digite a mensagem (ex:
Finaliza Capítulo 06 UML) e clique em Commit to main. - Envie para a Nuvem (Push): Clique em Push origin.
8. 📂 Estrutura de Pastas
extra_guia_de_modelagem_uml/
├── capitulos/
│ ├── capitulo_06_classes.md
│ └── codigos/
│ └── cap06/
│ └── classe_treinador.png9. 💡 Checkpoint de Lógica
Qual é a diferença entre uma Classe e um Objeto? (Dica: Pense no molde de gesso e na estátua pronta).
10. 🔥 Desafio de Fixação
Pesquise o que significa o símbolo # (Protegido / Protected) na visibilidade de atributos da UML.
11. 🔑 Gabarito de Código/Fórmulas
Resposta da Prática 2: Deixamos os atributos privados para garantir a segurança dos dados (Encapsulamento). Se o HP fosse público, um jogador poderia alterá-lo diretamente para 9999 sem passar pelas regras do jogo!