Tema: Herança, polimorfismo, encapsulamento e acoplamento entre classes
Formato: Pesquisa individual, feita no caderno
Orientações
Não é necessário conhecer os conceitos antes de começar. Pesquise cada um e responda às questões com suas próprias palavras.
- Anote as fontes consultadas: título do material ou site e endereço, se houver.
- Use exemplos e explique seu raciocínio. Uma definição copiada, sem explicação, não demonstra compreensão.
- Se usar uma ferramenta de IA, anote qual pergunta fez e confira as informações em outra fonte.
- O professor poderá pedir que você explique ou dê outro exemplo de uma resposta.
Etapa 1 — Pesquise e investigue
1. Herança
- O que é herança na programação orientada a objetos?
- Para que ela pode ser útil?
- No exemplo pesquisado, qual classe herda de qual outra classe?
- Que características as classes poderiam compartilhar? O que deveria ser diferente?
- Uma classe filha deve herdar qualquer característica da classe pai? Dê um exemplo de algo que não faria sentido herdar.
2. Polimorfismo
- O que é polimorfismo?
- Pesquise um exemplo em Java no qual classes diferentes tenham comportamentos diferentes associados a um mesmo método.
- O que cada classe faz quando esse método é chamado?
- Se uma terceira classe fosse acrescentada, o que ela precisaria fazer para apresentar seu próprio comportamento?
Analise este exemplo:
class Animal {
void emitirSom() {
System.out.println("Som genérico");
}
}
class Cachorro extends Animal {
@Override
void emitirSom() {
System.out.println("Au au!");
}
}
Animal animal = new Cachorro();
animal.emitirSom();
Que resultado você espera? Explique por que uma variável do tipo Animal pode produzir o comportamento definido em Cachorro.
3. Encapsulamento
- O que é encapsulamento?
- Para que serve o modificador
privateem Java? - Imagine uma classe
ContaBancariacom o atributosaldo. Que problema poderia ocorrer se qualquer parte do programa pudesse alterar esse saldo livremente? - Proponha uma regra para controlar uma alteração. Por exemplo: que condição um depósito deve cumprir para ser aceito?
- Se um atributo é
private, como a classe poderia permitir uma consulta ou alteração controlada?
4. Acoplamento entre classes
- O que significa dizer que uma classe depende de outra?
- O que são alto e baixo acoplamento?
- Imagine que uma classe
Relatoriosó funcione com objetos da classeCachorro. O que poderia ser necessário mudar se o sistema também precisasse incluir gatos? - Com base na sua pesquisa, como seria possível deixar esse sistema mais fácil de ampliar? Explique sua proposta.
Etapa 2 — Crie um exemplo próprio
Escolha um contexto diferente do exemplo pesquisado — por exemplo, escola, loja, biblioteca, jogo ou aplicativo.
No caderno:
- Desenhe um diagrama simples com uma classe geral e pelo menos duas classes específicas.
- Indique um atributo que deveria ser protegido.
- Indique um método que poderia ter comportamentos diferentes nas classes específicas.
- Escreva um pequeno trecho de código Java ou pseudocódigo para mostrar sua ideia. Não é necessário criar um programa completo.
- Identifique no exemplo onde aparecem herança, polimorfismo e encapsulamento.
- Imagine que uma terceira classe específica será acrescentada. O que precisaria mudar? Sua proposta facilitaria ou dificultaria essa mudança? Justifique usando a ideia de acoplamento.
Etapa 3 — Reflexão
- Qual conceito foi mais difícil de compreender? Que exemplo ajudou mais?
- Entre os quatro conceitos, qual você considera mais importante quando um programa cresce? Explique com uma situação concreta.
