DEV Community

Izabelle Derrihú
Izabelle Derrihú

Posted on • Edited on

Uma prosa sobre Orientação a Objetos!

Orientação a Objetos é um tópico básico sobre programação, utilizado pela maioria das empresas e projetos (e que ironicamente continua sendo debatido).

Apesar da fama, ela não é nenhuma rocket (ou enterprise) science.

Painel de controle Star Trek enterprise

Meu começo com a Orientação a Objetos foi muito tranquilo, já que tive uma introdução em sala de aula no ensino médio. A didática era diferente da que era usada na faculdade, e a linguagem era PHP, o que ajudou bastante e eu só tenho a agradecer aos meus antigos professores.
O único problema que eu tinha (e vejo novos programadores também terem) eram os termos usados. Muitas vezes uma explicação curta e simples é engrandecida por termos inutilmente complexos. Por isso resolvi começar a compartilhar meu conhecimento da forma que mais amo: Simples e descontraída.

Mas afinal de contas, que é a Orientação a Objetos?

A Programação Orientada a Objetos é um paradigma de programação.
Pronto. Acabou o post.

Paradigma é basicamente um exemplo, modelo ou padrão. Alguns programadores ao longo dos anos 60 e 70 discutiam e tentavam implementar regras que facilitassem a escrita de código, o que culminou nesse paradigma (e em vários outros).

Uma das explicações mais conhecidas é de que

“A orientação a Objetos visa modelar o mundo real como objetos”

Explicação vaga, confusa e preguiçosa

Descobri que podemos explicar da seguinte forma:

A Orientação a Objetos é um paradigma da programação que, a partir da abstração, modela entidades do mundo real como objetos, utilizando-se de três conceitos pilares: Encapsulamento, Herança e Polimorfismo.

Melhorou um pouco, vejamos... Uma entidade é basicamente uma coisa. Uma pessoa, uma cadeira, um carro... Tudo isso pode ser modelado em forma de objeto.

E a parte da abstração? Bem, abstrair é basicamente enxugar alguma coisa ao máximo, para que se obtenha apenas aquilo que é extremamente necessário.
Vamos pensar em um gato. Existem milhares de tipos de gato, ninguém nem conhece direito as raças felinas, porque gato é gato!
Eu tenho uma frajolinha, mas convenhamos que para um sistema que cadastra gatinhos, nem todos serão preto e branco. Dessa forma precisamos abstrair as características da minha gata.
O objeto gato vai ser composto de: Nome, Cor, Pelagem.
Pronto, abstraimos uma gata. A minha gata.

No fim, esse objeto com javascript ficaria mais ou menos assim:

Objeto gato, que possui nome, cor e pelagem, e é atribuído à constante catObject

Pô, aí ficou tranquilo. Só criar um objeto desse jeito aí abstraindo características e temos a famosa Orientação a Objetos, certo? Não, claro que não.

Essa é a modelagem do objeto gato, mas para um sistema funcional e útil precisamos realizar operações com ele, como por exemplo computar quantos gatos tem um mesmo nome. Ou a porcentagem de gatos frajolas. E é aqui que entram a herança, o encapsulamento, o polimorfismo, e a programação em si porque vamos combinar, ainda não programamos nada!.

Nos próximos posts trarei esses pilares, e entenderemos juntos como eles funcionam.

Top comments (0)