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:
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)
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).
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:
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.
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