skip to Main Content

POO: O que você precisa saber sobre programação orientada a objetos

POO: O que é programação orientada a objetos?

Assim como muitas atividades do nosso cotidiano, a programação também possui diferentes modos de ser realizada. Esses modos são chamados de paradigmas de programação e, entre eles, está a programação orientada a objetos (POO), que tem sido a base de várias linguagens de programação modernas. 

Devido aos benefícios que traz aos códigos, a POO tem sido muito utilizada no mercado e é bem famosa na comunidade de desenvolvedores. Justamente por estar ganhando cada vez mais força, o estudo e a implementação se tornaram fundamentais para todo profissional que atua na área. 

No conteúdo a seguir você vai conferir tudo sobre programação orientada a objetos e quais as principais diferenças entre ela e a programação estruturada. Confira!

 

O que é programação orientada a objetos

Programação Orientada a Objetos é um paradigma de programação onde a grande maioria das linguagens modernas estão baseadas.

Ela pode ser entendida como um paradigma de programação que se baseia na criação de classes e objetos para organizar o código e permitir o desenvolvimento de programas complexos.

Então, a POO é um modelo de programação baseado na aproximação do mundo real com o mundo virtual por meio da criação e interação entre objetos, atributos, códigos, métodos e vários outros fatores.

 

Veja como funciona a POO

A programação orientada a objetos tem o propósito principal de aproximar o mundo lógico da programação e o mundo em que vivemos.

A premissa da POO considera que tudo o que existe são os objetos e, para que eles sejam criados, necessitam de uma forma que crie esse aspecto inicial.

Para melhorar sua compreensão, vamos utilizar o seguinte exemplo: imagine uma linha de produção focada na fabricação de vários produtos, que podem ser desde um botão até um carro.

Independentemente do produto, eles seguem uma unidade padrão, a qual serve de base para dar esse aspecto inicial dos produtos finais. Trazendo para o mundo da programação, essa base é equivalente às classes que compõem o conceito de POO.

Após esse primeiro momento, que consiste em dar formato para o objeto, ocorre o processo de personalização, onde eles recebem cor, formato, função e outros aspectos, criando o resultado e determinando as características e ações da POO.

 

O que são classes e objetos dentro da programação orientada a objetos

Primeiramente, as classes são uma representação abstrata de um conceito ou entidade do mundo real. Ela define um conjunto de atributos (ou propriedades) e métodos (ou comportamentos) que descrevem as características e ações que os objetos dessa classe podem ter.

Em outras palavras: as classes podem ser entendidas como formas de definir objetos que serão a base deste código. Assim, essas classes são formadas por propriedades e métodos, que dão a forma da programação como um todo.

Vamos utilizar o seguinte exemplo: uma classe chamada “carro” pode ter atributos como marca, modelo, cor e ano de fabricação, tal como métodos como ligar o motor, acelerar e frear.

Já os objetos são uma instância específica de uma classe. Ou seja, eles são uma variável que é criada com base em uma classe e representa uma ocorrência real dessa classe.

Utilizando ainda o exemplo do carro, podemos criar vários objetos que representam carros específicos, como um carro da marca “Toyota”, modelo “Corolla”, cor “preto” e ano de fabricação “2019”.

Ou seja: podemos afirmar que o carro novo é um objeto, e as suas características são seus atributos, que estão atrelados ao objeto, e os seus comportamentos são ações ou métodos.

 

Os pilares da programação orientada a objetos

Classe e objeto são a base da POO. Desses conceitos, derivam os pilares extremamente importantes para o paradigma. São eles:

1 – Abstração

Esse é um dos pontos mais importantes de qualquer programação orientada a objetos. Antes de mais nada, é preciso determinar o que esse objeto irá realizar; para isso, três pontos devem ser levados em consideração: 

Identidade: precisa ser única dentro do sistema para que não haja conflito. Em algumas linguagens existe o conceito de pacotes (ou namespaces), nesses casos, a identidade do objeto não deve ser repetida dentro de um mesmo pacote, mas pode ser repetida em outros pacotes no sistema inteiro.

Propriedade: são as características do objeto. Seguindo o exemplo do carro, que falamos anteriormente, as propriedades de um objeto “carro” poderiam ser “cor”, “tamanho” e “ano”.

Métodos: as ações que o objeto irá executar. São extremamente variáveis, dependendo do tipo de solução desenvolvida.

 

2 – Encapsulamento

É uma técnica que confere segurança à aplicação em uma programação orientada a objetos, pois deixa as propriedades difíceis de serem alcançadas, como se fosse uma caixa preta.

Grande parte das linguagens orientadas a objetos criam o encapsulamento com base em propriedades privadas, por métodos chamados getters e setters, que vão retornar e estabelecer o valor da propriedade, respectivamente.

Isso adiciona mais uma camada de segurança à aplicação, evitando o acesso à propriedade do objeto.

 

3 – Herança

A possibilidade de reutilizar um código é uma das grandes vantagens da POO e isso se dá por sua caraterística de herança.

Fazendo uma analogia à árvore genealógica de uma família, um filho herda diretamente do pai e indiretamente do avô e do bisavô. Na programação a lógica é semelhante. Os objetos filhos herdam as características e ações de seus ancestrais.

Isso otimiza a produção da aplicação em tempo e linhas de código.

 

4 – Polimorfismo

Já viu aqueles animais que alteram sua forma conforme a necessidade? Essa é a mesma lógica do polimorfismo na orientação a objetos.

Comentamos anteriormente que os objetos filhos herdam as características e ações de seus “ancestrais”. No entanto, em algumas situações pode ser necessário que as ações para um mesmo método sejam diferentes. O polimorfismo, então, faz a alteração do funcionamento interno de um método herdado, atribuindo uma nova implementação para o método pré-definido.

 

Programação orientada a objetos X programação estruturada

Uma das primeiras diferenças entre os dois tipos de programação é o 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.

Por ser feita por meio dos objetos, a estruturação de dados é bem menor, quando comparada com a programação estruturada.

Nesse sentido, a POO fica acessível somente aos seus métodos, ao invés de ser acessível por todas as funções, como é o caso da programação estruturada.

Além disso, a programação estruturada utiliza a abordagem procedural, a qual considera que o programa obedece a uma sequência lógica, com início e fim muito bem determinados, sendo composta por três estruturas básicas, que são a sequência, as condições e as repetições.

Exemplos de linguagens da programação orientada a objetos:

Atualmente, grande parte das linguagens modernas utilizam os conceitos da programação orientada a objetos, e o POO trouxe novas práticas e conceitos que revolucionaram a escrita dos códigos modernos.

Um dos primeiros exemplos de linguagens da programação orientada a objetos é o Java, que é amplamente utilizado em diversos dispositivos e se popularizou por ser a linguagem escolhida pelo Google para desenvolver aplicativos para Android.

Além dessa linguagem, também podemos listar outros exemplos como C#, C++, Delphi, PHP, VB.NET, Object Pascal, Objective-C, Python e Ruby. Cada uma delas possui a sua abordagem específica e suas recomendações de aplicação.

No caso da linguagem C#, a sua abstração é muito simples e segue o modelo do Java. Todavia, o seu encapsulamento é um pouco diferente devido à implementação dos métodos getter e setter, além de possuir herança simples e a utilização de interfaces.

Já a linguagem C++ oferece muito mais liberdades com o hardware. No quesito abstração, ele possibilita a implementação de classes, além de possuir sentido público ou privado para o encapsulamento, que também utilizam os métodos getter e setter.

Na questão da herança, esse tipo de linguagem permite a herança múltipla, possibilitando que cada classe possa herdar quantas classes desejar.

>> Veja também: Especialista Java: Como se tornar um?

Conclusão

Com a POO, é possível desenvolver programas eficientes, modularizados e de fácil manutenção, partindo das classes, objetos, propriedades e métodos, resultando assim em um código muito mais organizado e reutilizável.

Se você deseja aprender mais sobre POO e aprimorar as suas habilidades de programação, continue lendo os artigos do nosso blog! Aqui, trazemos tudo sobre a área da programação, novas tendências e tudo o que você deve saber sobre a área.

Aproveite para conferir: Tutorial de desenvolvimento de Alexa Skill com Java e Quarkus

 

Arquiteto de Software na Lyncas, com mais de 10 anos de experiência em Análise e Desenvolvimento de Sistemas e aficionado por boas práticas de desenvolvimento. Sou pai e esposo e meu hobby é curtir a natureza e a família.