Article image
Thiago Oliveira
Thiago Oliveira14/07/2021 21:46
Compartilhe

Programação Orientada a Objetos (POO / OOP)

  • #Ruby
  • #Java
  • #.NET C#

O que é?

Programação Orientada a Objetos é um dos paradigmas fundamentais da programação que tenta trazer os ‘paradigmas’ do dia a dia para a programação. Onde trazemos o conceito de classes e objetos. Usamos para estruturar um software em pedaços simples e reutilizáveis (que chamamos de classes), onde usamos para criar instancias individuais dessas classes (chamados de objetos). Existem muitas linguagens que são orientadas nativamente ou implementam esse paradigma por exemplo: Java, C++, C#, Ruby entre outras.

Uma classe podemos dizer que é um algo abstrato usado para criarmos objetos concretos. As classes geralmente representam coisas amplas, como Pessoas, Carros, Faculdade, Aluno, que irão compartilhar atributos e métodos. Uma das principais funções das classes é definir quais atributos e métodos uma instância poderá ter, por exemplo: Atributos = nome, cor, idade, id e métodos= Andar, Acelerar, Cadastrar, Estudar.


Exemplo:

image

Os 4 Pilares da Orientação a Objetos:

·        Herança: Classes filho herdam métodos de seus pais. Ex. Uma Classe pai Carro, passara para o filho (Fusca) o método acelerar();

·        Encapsulamento: É o ato de reter informações podendo assim proteger e exibir somente o que é necessário Ex. atribuindo métodos e atributos com private;

·        Abstração: É o ato de simplificar o acesso a objetos complexos, dando acesso somente a atributos e métodos selecionados. Ex. Você não precisa saber como um motor funciona para acelerar.

·        Polimorfismo: São vários Power Rangers morfando, brincadeiras à parte, significa que objetos irão compartilhar comportamentos. Usando a herança, os objetos podem sobrescrever métodos do Pai, gerando assim métodos específicos para cada filho. O polimorfismo permite que o mesmo método execute comportamentos diferentes de duas maneiras: substituição de método e sobrecarga de método.

Exemplos práticos dos pilares:

Herança:

O filho herda comportamentos do Pai(imagem de cima)

imageimage

Encapsulamento:

Protegemos na classe pai o acesso a determinados metodos e atributos, como na imagem o atributo cor esta com private e os métodos com protected(somente visto na herança).

image

Abstração:

Como dito no texto e usando o exemplo cachorro, pouco importa músculos, ossos envolvidos no processo de Andar, somente a implementação dele:

imageimage

Polimorfismo:

O polimorfismo permite que o mesmo método execute comportamentos diferentes de duas maneiras: substituição de método e sobrecarga de método.

imageimage

Quais são os benefícios do OOP?

- Modularidade. O encapsulamento permite que os objetos sejam autocontidos, facilitando a solução de problemas e o desenvolvimento colaborativo.

- Reutilização. O código pode ser reutilizado por herança, o que significa que uma equipe não precisa escrever o mesmo código várias vezes.

- Produtividade. Os programadores podem construir novos programas mais rapidamente por meio do uso de várias bibliotecas e código reutilizável.

-Facilmente atualizável e escalonável. Os programadores podem implementar as funcionalidades do sistema de forma independente.

- Descrições da interface. As descrições de sistemas externos são simples, devido às técnicas de passagem de mensagens que são usadas para a comunicação de objetos.

- Segurança. Usando encapsulamento e abstração, o código complexo é escondido, a manutenção do software é mais fácil e os protocolos da Internet são protegidos.

- Flexibilidade. O polimorfismo permite que uma única função se adapte à classe em que é colocada. Objetos diferentes também podem passar pela mesma interface.


Com isso temos uma boa bagagem de introdução a um dos paradigmas mais usados hoje em dia e conseguimos entender que a implementação deste paradigma nos permite melhores estruturas de dados e capacidades de reutilização, tornando o código mais limpo e economizando tempo a longo prazo.


Link do artigo: Programação Orientada a Objetos

Compartilhe
Comentários (4)
Renan Vale
Renan Vale - 14/07/2021 23:42

Belo artigo cara... já separei pra ler nessa madruga de estudos!

Ricardo Wobeto
Ricardo Wobeto - 14/07/2021 23:43

Excelente material, me ajudou muito a reforçar os pilares da POO (OOP in english) e fortalecer cada vez mais o conhecimento para continuar na caminhada para ser um Dev no mercado de TI. Obrigado por compartilhar!!! 😃👊👩‍💻

Romulo Sousa
Romulo Sousa - 16/07/2021 17:56

Top demais seu artigo, ajuda bastante! :)

Robinson Dias
Robinson Dias - 16/07/2021 17:52

Ótimo artigo e direto ao ponto. Assim, que necessitamos para um aprendizado eficaz e coerente. Parabéns!!!