Ao lidar com um sistema ou software de uma empresa, é importante pensar quais os objetivos e o que ele planeja resolver. Dentro desse paradigma de programação – ou seja, a forma com a qual se decide resolver determinado problema por meio da programação de computadores – existe a programação orientada a objetos (POO).
Ela serve de alicerce e parâmetro para o desenvolvimento de um programa completamente inovador e eficiente.
Você conhece esse conceito? Entre todos os paradigmas dentro das linguagens de programação, o POO é o mais difundido pelo resultado que traz ao setores de tecnologia das empresas.
Neste artigo você vai entender o que é o POO e outros detalhes para sua execução. Confira!
O que é a POO?
A POO nada mais é que um paradigma de programação que tem como intuito apresentar o design de um sistema com os fatores de entidades, objetos e relacionamentos. Ou seja, é um modelo baseado na aproximação entre o mundo real e o mundo virtual, através da criação e interação entre objetos, atributos, códigos, métodos, entre outros fatores.
Assim, a programação orientada a objetos parte do princípio de que tudo o que existe são os objetos. Só que para eles serem criados, precisam de uma forma para esse aspecto inicial, assim como no mundo real mesmo.
👉 Um exemplo prático seria: você tem uma unidade fabril realizando a fabricação de produtos, sendo que esses produtos (considerados os objetos) são qualquer coisa: desde carros até um chocolate. Seja qual for o escolhido, no início dessa produção, haverá o uso de uma forma para dar o aspecto inicial dos objetos finais. Todas essas fôrmas são equivalentes ao conceito de classes em POO.
Quando realizados eles passam por personalizações, como cores, formatos, funções ou recheios. É esse resultado final que determina a ação do POO, com todas essas características individuais.
Programação Estruturada vs Programação Orientada a Objetos
Ao se aprofundar sobre a programação orientada a objetos, surge a explicação do que é uma programação estruturada, podendo muitas vezes serem confundidas. Vale então ressaltar que a principal diferença entre as duas é referente ao acesso aos dados.
Na POO os dados não são generalistas, como no caso de variáveis globais que podem ser vistas e utilizadas a qualquer momento. Além disso, por ser feita por meio dos objetos, sua estruturação de dados é menor quando comparada à programação estruturada.
Portanto, a Programação Orientada a Objetos fica acessível somente aos seus métodos, ao invés de ser acessível por todas as funções, como ocorre no paradigma estruturado. Confira melhor na imagem abaixo.
Os 4 pilares da Programação Orientada a Objetos
Na prática, para a POO funcionar, ela precisa utilizar de 4 pilares básicos. Para uma linguagem de programação ser considerada orientada a objetos, deve haver quatro comportamentos característicos. São eles:
Abstração
Também conhecida como interface ou template, sua ideia é representar um objeto de forma abstrata, que seja obrigatoriamente herdado por outras classes.
Como estamos lidando com uma representação de um objeto real (o que dá nome ao paradigma), temos que imaginar o que esse objeto irá realizar dentro do sistema.
Assim, leva-se em consideração uma identidade ao objeto que iremos criar, as suas características e as ações que irá executar. Essas ações ou eventos são chamados “métodos”.
Logo, é comum as pessoas simplificarem a explicação da abstração como uma espécie de mistura de encapsulamento e polimorfismo, que você verá as definições a seguir.
Encapsulamento
É referente a capacidade que determinado método ou atributo de um objeto tem de se manter invisível, de se manter funcional, mas sem mostrar como.
É igual a gente saber o que faz, mas não saber como se faz. 🤨
Nesse sentido, ele se trata de um dos elementos que adicionam segurança à aplicação em uma programação orientada a objetos pelo fato de esconder as propriedades, criando uma espécie de caixa preta.
Herança
Refere-se a receber algo pré-existente, onde é um evento que ocorre entre classes, tendo a doadora, que é a classe-mãe, e a filha como herdeira.
Vamos a um exemplo: existe uma família onde a criança está herdando características de seus pais. Já os pais, herdam algo dos avós, o que faz com que a criança também tenha essa ‘herança’, e assim sucessivamente.
Essa é a dinâmica da orientação a objetos. O objeto abaixo na hierarquia irá herdar características de todos que estão acima dele, seus “ancestrais”.
Polimorfismo
Ela é peculiar aos métodos dos objetos, ou seja, um mesmo método pode ser utilizado em diferentes objetos, de diferentes classes.
Um exemplo seria: você está no banco e pega o extrato que mostra a movimentação da conta de clientes de determinada categoria (objeto). No entanto, pode-se usar essa funcionalidade para clientes no geral. Além de também pode ser utilizado no sistema de outros bancos (classes).
Vantagens da Programação Orientada a Objetos
São muitos os benefícios de investir em uma programação orientada a objetos, devido à necessidade de se representar cada vez mais o mundo real na rede de computadores. As vantagens principais são:
- Ser confiável;
- Fácil de ajustar;
- Ser extensível;
- Possível de se fazer reutilização.
Exemplos de linguagens de Programação Orientada a Objetos
Existem diversos tipos de linguagens de programação orientada a objetos no mercado atual, sendo as principais Java, C# e C++. Cada uma possui sua abordagem e recomendações de aplicações, confira:
Java
Uma das mais conhecidas no mercado, ela implementa os quatro pilares de forma bastante intuitiva, o que facilita o entendimento por parte do desenvolvedor. 🤩
A abstração ocorre por classes, que contém propriedades e métodos, de forma bastante simples. Entretanto o encapsulamento por propriedades privadas, e as de herança e polimorfismo no Java, são um pouco mais complexas.
Na figura abaixo você observa um exemplo de encapsulamento de Java:
C#
Também muito conhecida, sua abstração é muito simples, e segue o modelo do Java. A questão do encapsulamento é um pouco diferente devido a implementação dos métodos getter e setter.
Além disso, a questão da herança em C# também segue o modelo do Java: herança simples e a possibilidade de utilização de interfaces. Confira exemplo abaixo de encapsulamento de C#:
C++
Por ser baseada em uma das primeiras linguagens existentes, tem mais liberdades com o hardware. Em relação a abstração, o C++ implementa classes, assim como qualquer linguagem orientada a objetos, além de possuir o sentido de privado e público, que é utilizado para encapsulamento. Esse encapsulamento é realizado através de métodos getter e setter, muito similar ao visto em Java e C#.
No entanto, ao falar de herança é diferente, pois permite a herança múltipla, o que significa que cada classe pode herdar de quantas classes desejar.
Confira exemplo abaixo:
Use a POO no seu dia a dia!
Portanto, a programação orientada a objetos traz grandes benefícios aos setores de tecnologia da informação das empresas na construção de seus sistemas e softwares ou hardwares.
Só para sua execução é necessário um conhecimento básico técnico que apenas uma especialização pode trazer.
Tem interesse em saber mais sobre o assunto? Aqui na XP Educação temos um bootcamp exclusivo para você se tornar um desenvolvedor e dominar essas práticas. Saiba mais sobre ele.