Programação Orientada a Objetos
Sabemos que existem diversas maneiras de se programar. Alguns exemplos mais famosos são a programação
estruturada, programação concorrente e os 4 paradigmas da programação: orientada a objetos, imperativa, funcional e lógica.
Hoje o tema abordado será a programação orientada a objetos.
Conceitos
A programação orientada a objetos foi criada com base na realidade. Como o nome diz, este tipo de programação
utiliza a interação de unidades apelidadas de objetos. Objetos são estruturas que podem ser palpáveis "fisicamente" e
alguns dos objetivos dele é facilitar a impementação, poder ser reutilizado, etc.
Em termos mais técnicos, o objeto é a instância de uma classe.
A classe é toda descrição do objeto: o que o objeto é capaz de fazer (métodos), o que o objeto possui
intrinsecamente (atributos). É a classe também quem define que "tipo" vai ser o objeto (exemplo: se a classe for "Lapis", o objeto instanciado será um lápis).
Os quatro pilares de POO
Temos 4 principais características que diferem a POO das outras formas de programação. Elas recebem o nome de pilares
da POO:
- Herança
- Polimorfismo
- Abstraçao
- Encapsulamento
Herança
A herança é a capacidade de uma classe herdar características de uma classe "mae". Por exemplo, suponhamosque tenhamos uma classe Lapis e queremos criar uma classe Caneta. Para isso, podemos poupar tempo e linhas de código
simplesmente dizendo que a caneta herda características de Lápis (espessura da ponta, cor). A herança também passa os
métodos, logo a Caneta poderia ter um método escrever() presente no Lápis.
Polimorfismo
Deriva-se da ideia de herança. Como sabemos, um filho herda as características de seus ancestrais. Sabemostambém que se herdam as funções da classe mãe. Mas e se caso uma ação herdada nao condizer a lógica do novo objeto? Por exemplo, se
a Caneta herdar a ação apontar() presente em Lapis, percebemos que não seria uma boa ideia
pois não se faz uso de uma caneta apontando-a. Nesse caso podemos alterar esse método para que ele tenha função condizente com
uma caneta, como inserir um novo refil.
Essa capacidade de um método ter diferentes funcionamentos chamamos de polimorfismo.
Abstração
A abstração é um pouco mais dificil de explicar pois depende de projeto para projeto. Mas basicamenteé a forma como o desenvolvedor cria uma classe/objeto dentro do sistema. Tem que levar em consideração a que nível de detalhes
um objeto deve ter para poder ser bem utilizado, reutilizado e evitar que haja ambiguidade.
Encapsulamento
O encapsulamento seria uma forma de proteção para evitar futuros bugs e relacionados. Ela impedeque o usuário tenha acesso livre para executar todo tipo de operação, como modificar alguma característica ou método de um objeto.
Por exemplo, se o objeto Lapis possui o metodo Apontar, sabemos que ao executa-la a ponta do Lapis estaria renovada.
Mas nao sabemos o que de fato aconteceu durante o processo.
Usos da POO
A POO, assim como as outras, pode ser usada para propósitos geral de programação, para desenvolvimento de softwares, aplicativos mobile, aplicações web, etc.
Linguagens com suporte à POO
- Java
- C++
- Python
- Ruby
- Javascript
- PHP
Comentários
Postar um comentário