Estudar o paradigma orientado a objetos nem sempre é fácil no início.
Neste post você vai conhecer conceitos importantes, como a herança, o polimorfismo e a sobrescrita. Preparado? então acompanhe:
Tópicos
1. O que é orientação a objetos?
2. Qual é o objetivo da programação orientada a objetos?
3. Abstração
4. Encapsulamento
5. Herança
6. Reuso
7. Polimorfismo
8. Sobrescrita
O que é Orientação a Objetos?
Existem inúmeras linguagens de programação. Linguagens servem para que consigamos instruir ao computador que faça algo.
Obviamente, a nossa máquina não entende a linguagem que usamos para programar.
Contudo, existe algo mágico chamado de compilador, que “traduz” o nosso código em linguagem de máquina ou linguagem de baixo nível – os 0 e 1.
Cada linguagem de programação tem suas regras, características e paradigmas.
Algumas são orientadas a objetos e outras não. Mas o que quer dizer ser orientada a objetos?
Uma linguagem orientada a objetos tende a ser mais próxima da nossa realidade, pois consegue absorvê-la em seus códigos.
A POO consegue desenvolver soluções que, por exemplo, as linguagens estruturadas não são capazes.
O paradigma estruturado é engessado e complicado de se corrigir quando há falhas. Geralmente todo o código está num lugar só, não é dividido por classes. Portanto, a sua manutenção é delicada.
Ele foi difundido baseado no princípio de que poderia abstrair os problemas do cotidiano com apenas três estruturas: sequência, decisão e iteração.
A sequência é a execução de um bloco de instruções após o outro. A decisão, é a estrutura de condição, que determina se um bloco será executado ou não depois de ser testado.
Por fim, a iteração são as estruturas de repetição, que ordenarão ao bloco de código repetir o que está em sua instrução, até ser obrigado a parar.
Todavia, a complexidade dos problemas aumentou de tal maneira que o paradigma estruturado não era mais suficiente para resolvê-la. E aí entra a Orientação a Objetos.
Leia também
Como programar em Delphi: introdução para iniciantes
Como ser um bom programador: excelentes dicas para você se aperfeiçoar
HTML para iniciantes: desenvolva em poucos minutos
O que é algoritmo? Aprenda de uma vez por todas
Banco de Dados: Conceito de modelagem para iniciantes
Qual é o objetivo da Programação Orientada a Objetos?
Simplificar o código, torná-lo coeso, limpo, elegante e o mais importante: colocar tudo separado em seu lugar. Não há aquela mistureba doida de dados para lá e para cá.
Quais são as principais características da Orientação a Objetos?
Abstração
É o modo de se trabalhar com as características em comum de um certo grupo de objetos.
Pode ser descrito como um conceito abstrato de algo, que pode dar vida a outras coisas semelhantes, mas com diferentes características.
Encapsulamento
Uma de suas melhores características, o encapsulamento, permite restringir o acesso aos elementos de uma classe.
Isso garante uma segurança maior na manipulação dos dados e do que é feito com eles.
O encapsulamento pode ocultar como uma aplicação é feita, como os cálculos dos métodos são efetuados, etc. Ele faz com que seja mostrado somente o essencial.
Herança
É a capacidade de uma classe herdar os atributos, métodos e demais elementos presentes em outra classe.
Ou seja, dá-se um relacionamento entre duas ou mais classes, em que uma classe, chamada de super classe ou classe-pai (mãe), transfere seus atributos e métodos a outra.
É importante dizer que, quando uma classe herda elementos de uma superclasse, pode-se adicionar elementos, mas nunca excluir os que são herdados.
Outro item importante que você, nobre navegante tem de ficar atento é que, nem sempre uma subclasse tem acesso a todos os elementos de sua classe pai.
Isso acontece por causa da visibilidade dos seus atributos e métodos. Se eles forem privativos, então não há acesso. Usa-se, mas não há acesso direto a eles.
Reuso
De acordo com as boas práticas de programação, a repetição de código é uma prática de cheiro ruim. Isto quer dizer que é abominável.
A repetição de códigos torna a aplicação vulnerável a erros, já que se o programador precisar modificar alguma parte em sua estrutura, poderá se esquecer de arrumar onde foi duplicado.
A manutenção ou a correção de erros em um código repleto de repetições é desgastante e penosa. A chance de o erro persistir é grande.
Por isso, a Orientação a Objetos pode reaproveitar elementos da classe sem a necessidade de repeti-los.
Polimorfismo
O polimorfismo é uma consequência da herança. Ele existe, pois, pode acontecer de uma subclasse precisar modificar o comportamento de um método para adaptar às suas necessidades.
Geralmente, o polimorfismo é fruto de classes e métodos abstratos. Uma boa prática da programação é a assinatura dos métodos, feita pela classe mãe.
Assim, a subclasse herda apenas o método sem a sua implementação, restando a ela a livre implementação do código.
Sobrecarga de Métodos
Nada mais é do que um mesmo método com parâmetros diferentes.
Esta característica é importantíssima em OO, pois em muitos casos implementa-se ou herda-se um método, mas os dados têm de ser modificados.
Sobrescrita
É a mesma coisa que ‘reescrever’ um método.
Também é uma consequência da herança.
A sobrescrita pode ‘apagar’ um comportamento herdado, reescrevendo outro no lugar.
Isto significa que, quando o bloco de códigos da subclasse for rodar, os métodos que serão executados serão os que ela sobrescreveu e não os originais da classe mãe.
DICA: A principal diferença entra a sobrescrita e o polimorfismo é que, o polimorfismo não necessita tecnicamente reescrever o método, pois herdou um comportamento abstrato – sem implementação. Já a sobrescrita herda um método já implementado, cabendo a si modificar ou não.
Concluindo
A programação orientada a objetos é fascinante. Pode até ser mais complicada de se compreender do que o paradigma estruturado, mas as suas ferramentas nos auxiliam a desenvolver aplicações melhores e mais complexas.
Pois bem, nobre navegante da programação, você viu até aqui conceitos importantíssimos sobre a OO. Não perca os próximos posts de Orientação a Objetos.
Gostou do artigo? Para você, o que é mais difícil de se compreender em Orientação a Objetos?