728 x 90


Orientação a Objetos – Conceitos e uma abordagem prática

Orientação a Objetos – Conceitos e uma abordagem prática

Olá pessoas! Hoje vou abordar um assunto bem batido acredito que para a maioria dos programadores: a Orientação a Objetos. Mas eu acredito que seja útil para a galera que está iniciando na área e gostaria de aprofundar nos conceitos.  Vou abordar ou tentar abordar o assunto de uma maneira prática, com alguns códigos em

Olá pessoas! Hoje vou abordar um assunto bem batido acredito que para a maioria dos programadores: a Orientação a Objetos.

Mas eu acredito que seja útil para a galera que está iniciando na área e gostaria de aprofundar nos conceitos.

 Vou abordar ou tentar abordar o assunto de uma maneira prática, com alguns códigos em C# (se você é Javeiro não tem problema, vai dar na mesma).

Se estas dicas têm sido úteis ou encontrou algo que pode acrescentar, deixa o seu comentário abaixo. Vou ter o enorme prazer em respondê-lo.

Aperte os cintos, vamos lá.

Introdução e Conceito

 Uma parte teórica não pode ser deixada de lado. Quando falamos em orientação a objetos ou programação orientada a objetos podemos definir como um modelo ou um padrão de software baseado na interação e composição entre diversos objetos.

Conceitos essenciais

Classe – Um item que precisamos lembrar também e gera uma certa confusão é o conceito de classe. Uma classe é uma estrutura que abstrai um conjunto de objetos com características similares.

Uma classe define o comportamento de seus objetos, através de métodos, e os estados possíveis destes objetos através de atributos ou propriedades.

Objeto / instância de uma classe – Como citado anteriormente, um objeto é capaz de armazenar estados através de seus atributos e devolver o resultado de ’mensagens’ enviadas a ele, assim como se relacionar e enviar mensagens a outros objetos.

Exemplo de objetos da classe Cliente: João, Maria, José.

Atributo – são características de um objeto ou basicamente a estrutura de dados que uma classe irá representar.

Método – definem as ações ou habilidades de um objeto. Exemplo: Classe Carro tem os métodos Buzinar(), Ignição(), Acelerar().

O código abaixo demonstra uma classe em C#:

Principais vantagens

Não lembro a ultima vez que pensei em uma solução procedural ou mais conhecida como programação estruturada, mas devo ressaltar que são inúmeras as vantagens de se utilizar a orientação a objetos.

Dentre elas vou ressaltar as principais:

  • reaproveitamento de código (eis aqui o motivo mais nobre para utilizar a abordagem);
  • código mais próximo da realidade do que no modelo estruturado, isto porque quando pensamos nos objetos, eles representam o mais próximo possível do mundo real (abstração);
  • padronização e maior clareza do código, pois diferente da programação estruturada, você terá métodos mais específicos aqui, fazendo o que realmente devem fazer e com poucas linhas.

Os pilares da programação Orientada a Objetos

Existem quatro pilares que a linguagem deve atender para ser orientada a objetos e que são muito importantes. São eles: abstração, encapsulamento, herança e polimorfismo.

Irei abordar detalhadamente a seguir cada um deles para que fique bem claro. Vamos lá.

Abstração

Um dos pontos mais importantes de qualquer linguagem orientada a objetos esta na abstração, que seria a capacidade de um objeto representar um item do mundo real e transformá-lo em uma classe.

Da mesma forma como ocorre no mundo real, teremos objetos com identidade (nome), características e que executem ações afim de prover o funcionamento do sistema como um todo.

Encapsulamento

O encapsulamento na orientação a objetos consiste na separação de aspectos internos e externos de um objeto.

Este mecanismo é utilizado amplamente para impedir o acesso direto ao estado de um objeto (seus atributos), disponibilizando externamente os métodos que acessam (getters) e alteram (setters) estes estados.

Herança

Uma das grandes vantagens da orientação a objetos se dá por este recurso. Essa característica aperfeiçoa o reaproveitamento de código e te poupa algumas linhas de escrita de código.

Como o próprio nome já diz, a herança pode ser exemplificada como na sua família: uma criança, por exemplo, herda características de seus pais. Nesta hierarquia, poderíamos estender para os avós, por exemplo, e assim por diante.

Polimorfismo

O polimorfismo ou capacidade deste objeto ter diferentes comportamentos sem modificar sua estrutura. Um exemplo prático seria a da representação de uma classe Aparelho Eletrônico, que pode ser herdada por outras como Televisão, Geladeira. Na classe base Aparelho Eletrônico, temos o método Ligar(), que será reescrito em cada classe filha (Televisão e Geladeira), pois ambas têm comportamento diferente.

Vale lembrar que para implementar polimorfismo no C# faz uso de método virtuais (com a palavra-chave virtual) que podem ser reimplementados (com a palavra-chave override) nas classes filhas.

Conclusão

Esses quatro pilares são essenciais no entendimento de qualquer linguagem orientada a objetos e da orientação a objetos como um todo. Cada linguagem irá implementar esses pilares de uma forma, mas essencialmente é a mesma coisa.

Apenas a questão da herança, como comentado, que pode trazer variações mais bruscas, como a presença de herança múltipla. (Como é o caso do C++).

 Até a próxima!


Conheça o Mini curso gratuito de Vue.Js e as séries de artigos que estou escrevendo sobre o framework javascript.

Posts Carousel

Leave a Comment

Your email address will not be published. Required fields are marked with *

Latest Posts

Top Authors

Most Commented

Featured Videos