O que é Programação Orientada a Objetos (POO)?

O conceito de Programação Orientada a Objetos já é bem antiga e remonta aos anos 70 primordialmente. E atualmente é usado de fato por grande parte dos sistemas. 

A Programação Orientada a Objetos, também conhecida pela sua sigla POO, em inglês OOP –  Object Oriented Programming. É um paradigma de programação, também chamado de Paradigma de Desenvolvimento, que utiliza o conceito de objetos para representar elementos do mundo real. Desse modo os objetos podem conter atributos, estados e comportamentos.

Entretanto antes do POO o paradigma da Programação Procedural, ou a Programação Estruturada era o mais usado no desenvolvimento de software.

A Primeira linguagem considerada POO é a Smalltalk. Considerada puramente orientada a objetos. Ela introduziu o uso de máquina virtual que permite que o software seja desenvolvido independente da plataforma.

Possui uma IDE (Integrated Development Environment), ou seja, ambiente de desenvolvimento integrado algo incomum para época, e compilação JIT (Just-in-time), além da arquitetura MVC (Model-View-Controller).

Como resultado a Linguagem Smalltalk influenciou várias das principais linguagens modernas. Saiba mais sobre o que é Programação Orientada a Objetos a seguir.

Principais Características

Os quatro pilares básicos desse paradigma são:

Herança

Um objeto (filho) pode ser criado baseado nas características de outro (pai). O objeto principal, chamado de objeto pai, possui seus próprio atributos (propriedades) e métodos (funções). Assim quando criado o objeto filho ele herdará esses atributos e métodos de seu objeto pai. 

Polimorfismo

Um método (função) pode ser reescrito para o objeto filho. Assim a função no objeto filho ganha um comportamento diferente do herdado pelo objeto pai.

 Encapsulamento

Cria uma proteção para os objetos. O Encapsulamento protege de uso indevido. Nesse contexto existem os modificadores de acesso que servem para evitar que determinada classe tenham acesso um código fora de sua lógica de programação a saber:

  •  public: disponível para qualquer acesso externo a classe;
  •  protected: disponível o acesso das classes filhas, protegido para acesso externo;
  •  private: acesso disponível somente dentro da própria classe.

Abstração

O objeto é representado de forma abstrata. Uma classe pai (superclasse) é criada mas a implementação só é feita na classe filha. Não é possível criar um objeto na superclasse pois ela não executa nenhum método. Esse conceito também pode ser entendido como a união das características do Encapsulamento e do Polimorfismo. 

Programação Orientada a Objetos vs Programação Estruturada

Programação Estruturada têm ênfase em outras características como sub-rotinas e laços de repetição.Nela os programas seguem em forma sequencial. Assim ela segue a ordem de sequência, condição e repetição. Esse paradigma possui limitações e não é possível o uso do encapsulamento. Um exemplo é a Linguagem C.

Design Patterns

Entender o que é Design Patterns é relativamente simples pois nada mais é do que padrões de projeto. A ideia principal surgiu do livro “A Pattern Language: Towns, Buildings, Construction” em português “Uma Linguagem de Padrões”. Nele é listada uma série de problemas e suas possíveis soluções.

Conclusão

Muitas das linguagens mais utilizadas atualmente possuem orientação a objetos como C++, C#, Java, PHP, Python, Ruby, Dart, Perl, Objective-C, entre outras.

Em resumo as principais vantagens do POO são: a reutilização de código e independência entre as partes do software, manutenção de código e criação de bibliotecas.

Por fim entre as desvantagens estão: maior uso de memória, maior tempo de aprendizado para o programador, pode não ser o pais adequado para o seu projeto.

E aí gostou de saber mais sobre programação orientada a objetos?

Leia mais:

Como Aprender a Programar Sozinho – Guia Completo

O que é Array em Programação?

You may also like...

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *