DEV Community

Ana Biscalchin
Ana Biscalchin

Posted on

Os 4 pilares da programação orientada a objetos (POO)

Se você está “perdidim” sobre por onde começar a estudar Programação Orientada a Objeto, o famoso POO (ou OOP – Object-Oriented Programming), vem comigo:


Antes de paradigmas de programação…
Paradigma significa exemplo geral, conjunto de formas ou modelo de algo, um padrão. Então, paradigmas de programação seriam como um modelo, padrão ou estilo. Linguagens seguem determinados paradigmas — modelos que mostram como a linguagem funciona e também como ela soluciona problemas.


Antes do paradigma de POO, só pra entender o quanto ele é diferente, vamos olhar para o paradigma procedural, que usa o conceito de procedimentos:

  • Você define funções (procedimentos) com seus argumentos (variáveis).
  • Essas funções recebem valores, processam operações e retornam resultados.
  • O foco está nas instruções, na sequência de passos a seguir.

A partir daí, surgem os quatro pilares da POO:

Encapsulamento
É como se cada “coisa” (objeto) tivesse sua caixinha fechada. Dentro dela ficam dados (atributos) e funções (métodos) que manipulam esses dados. Você só expõe o que precisa pelo “buraquinho” (interface), protegendo o resto de quem quiser fuçar direto. Assim, evita bagunça e mantém o controle.

Abstração
A ideia é pegar só o essencial e esconder o resto dos detalhes complexos. Tipo dirigir um carro sem precisar entender o motor por trás. Na POO, você cria classes que modelam conceitos do mundo real focando no que importa e deixa a implementação por baixo dos panos.

Herança
Pensa numa árvore genealógica: uma classe “Filha” herda características e comportamentos de uma classe “Pai”. Você aproveita código pronto e só adiciona ou modifica o que for específico. Isso evita duplicação e deixa o código mais organizado.

Polimorfismo
Significa “muitas formas”. Um mesmo método pode se comportar de jeitos diferentes dependendo do objeto que o chama. Exemplo: fazerSom() em um objeto Cachorro late, em um objeto Gato mia. Você invoca o mesmo método, mas o resultado varia conforme a classe.


E aí, clareou? 🚀

Top comments (0)