fundo
Pilares da POO (programação orientada a objetos);

A POO tem 4 pilares: 

  1. Abstração;
  2. encapsulamento;
  3. herança;
  4. polimorfismo;

Abstração: 

Isola de um objeto somente os conceitos que são necessários para o funcionamento do programa.

Vamos simular uma situação em que puxamos dados de uma API que retorna a previsão do tempo: 

Mas para nossa aplicação só queremos a temperatura, a cidade e a previsão do tempo e a velocidade não é importante nesse caso. Vamos abstrair e usar o que vai ser útil:

Pronto! Um “console.log()”  é apenas para simplificar tudo, mas geralmente fica assim: 

Encapsulamento: 

Oculta partes internas de um objeto e exibe apenas o necessário ou o que o programador quer exibir para que fique tudo encapsulado certinho e não haja erros. Vamos ver no exemplo a seguir: 

Na linha 16 perceba que consegui setar uma velocidade que não respeita as condições do método “acelerar” e a saída no console é 1000 (mil). Por que isso acontece? Bom precisamos encapsular criar um método "velocidade" e deixar ele encapsulado:

 

Usei um getter (linha 7). Assim pude pude obter controle mesmo setando a velocidade de 1000 (linha 20). E com esse getter não será mais possível acessar a velocidade, apenas o que eu permito que acessem.

Herança: 

Vai passar as características de um objeto para outro. Pode ser (e geralmente é) um método. Veja no exemplo: 

Tanto a classe cat quanto a class dog herdaram o método “makeNoise”, e agora qualquer animal que for criado pode usar esse método por consta do “extends‘ E assim que funciona a herança. 

Polimorfismo: 

Basicamente com o polimorfismo duas classes do mesmo tipo conseguem implementar o mesmo método, mesmo tendo formas diferentes. Veja no código

Imagine que temos um brinquedo que faz sons de animais que foi representado no código como “AnimalSounds” (linha 13), Esse brinquedo recebe como parâmetro um animal que nem ele sabe quem é ainda, mas já está lá. E são criadas mais duas classes Cat e Dog(linhas 10  e 11), que na teoria são animais com “formas diferentes” (anote essa frase). Depois é criado a constante (ou variável) animalSound (linha 21) que cria um novo som, e nas linhas 23 e 24 perceba: 

A classe animalSounds assumiu duas formas diferentes (cat e dog) e usou o mesmo método. Então o polimorfismo é isso!

Gostou desse post? compartilhe para criarmos uma corrente de conhecimento!

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *