2 INFO – 16/02/2024 – POO – Blog Gerardão

2 INFO – 16/02/2024 – POO

Abstração

Abstração significa “esconder” partes da implementação do objeto expondo apenas uma interface simples para seu uso. Pense por exemplo num forno de micro-ondas, você não precisa entender toda a complexidade de como os componentes internos trabalham para gerar as ondas e produzir calor, você quer apenas apertar um ou dois botões e ter uma refeição quente pra comer. Toda essa complexidade são detalhes de implementação, você não precisa conhecê-los.

Da mesma forma seu objeto deve ter uma interface simples e amigável, deixando suas partes complexas ou detalhes de implementação protegidos do mundo exterior. Assim mudanças feitas internamente no nível da implementação não irão afetar sua interface pública e aqueles que utilizarem o objeto.

Encapsulamento

Encapsulamento se refere à construção do objeto de modo a proteger o acesso direto a seus dados internos. Ao encapsularmos um objeto estamos agrupando propriedades e métodos que estão diretamente relacionados dentro de um mesmo objeto, permitindo que essas propriedades sejam acessadas apenas através de métodos públicos. Desta forma tratamos de questões importantes como segurança e confiabilidade do estado do objeto.

Herança

A Herança é uma forma de eliminar repetição de código onde, como o próprio nome sugere, um objeto pode herdar características (ou seja, propriedades e métodos) de outra classe, sem a necessidade de se reescrever essas mesmas características.

Para um exemplo prático, pense nos objetos clt e estagiario. O objeto clt poderia ter métodos exclusívos como calculo_de_13 e fgts, mas ambos compartilhariam propriedades como salario e data_de_inicio, e métodos como receber_salario ou calcular_ferias e não faria sentido implementar essas mesmas propriedades e métodos em ambas as classes, mas sim inserir essas características em uma classe pai como por exemplo funcionario.

Polimorfismo

Poli significa muitas e Morphos significa forma, então Polimorfismo significa muitas formas. Em POO Polimorfismo é caracterizado quando duas ou mais classes possuem métodos com o mesmo nome, mas podendo ter implementações diferentes. Assim, é possível utilizar qualquer objeto que implemente o mesmo método sem nos preocuparmos com o tipo do objeto. Na prática isso nos possibilita remover do nosso código diversos IF statements ou SWITCH cases

No exemplo dado acima, utilizando polimorfismo podemos implementar o método calcular_ferias em cada um dos objetos clt e estagiario, sendo que cada um desses métodos pode ter uma implementação diferente.

EXERCÍCIO

De acordo com a imagem acima, crie as seguintes classes:

  1. Animal
  2. Ovelha que herdará tudo da classe Animal.
  3. Cao que herdará tudo da classe Animal.
  4. Gato que herdará tudo da classe Animal.
  5. Cavalo que herdará tudo da classe Animal.
  6. Vaca que herdará tudo da classe Animal.

7. Em cada uma das classes herdadas de “Animal”, implemente um método “def falar(self):”, onde cada um dos animais irá imprimir uma mensagem diferente na tela:

Deixe um comentário