Desenvolvimento Orientado a Objetos

Este artigo traz alguns conceitos sobre orientação objeto descrevendo de maneira simples as principais características da Programação Orientada a Objetos (POO).

Você também pode assistir a vídeo aula sobre Programação Orienta da Objetos, antes de prosseguir com a leitura deste artigo! Vai com certeza te ajudar a entender melhor estes conceitos, uma vez que na vídeo aula é demonstrado todos os conceitos de forma prática! Corre lá assiste eu espero! :)

Desenvolvimento Orientada a Objetos

Com a constante evolução das empresas, as regras de negocio se tornaram variáveis, a produção de software para se conservar o padrão de qualidade exige a adoção de métodos de desenvolvimento que atendam essa dinâmica do mercado. A orientação a objeto é um dos métodos mais utilizado, oferece recurso para desenvolver software com qualidade e com a utilização de seus conceitos pode-se interagir com o mundo real e transformar suas características para o mundo computacional.

Sommerville (2007, p. 208) afirma que “análise orientada a objetos concentra-se no desenvolvimento de um modelo orientado a objetos do domínio da aplicação. Os objetos nesse modelo refletem as entidades e as operações associadas ao problema a ser resolvido”.

Este modelo descreverá como o software funciona para satisfazer uma série de requisitos definido pelo cliente. (PRESSMAN, 2002, p.560)

Abstração

A abstração consiste na separação dos objetos de uma totalidade, a segmentação proporciona uma melhor utilização dos recursos da orientação a objetos. Correia (2006, p. 11) afirma que “pelo princípio da abstração, nós isolamos os objetos que queremos representar do ambiente complexo em que se situam, e nesses objetos representamos someta as características que são relevantes para o problema em questão”.

Encapsulamento

O encapsulamento é um dos pilares da orientação a objetos sua característica é ocultar partes da implementação desta forma construir softwares que atinjam suas funcionalidades e escondam os detalhes de implementação do mundo exterior. Os objetos encapsulados funcionam como uma caixa preta, sabe-se da sua interface externa, mas não precisa se preocupar com o que acontece dentro dela. (SINTES, 2002, p. 22 – 23)

Correia (2006, p. 13) afirma que “as pessoas que usam os objetos não precisam se preocupar em saber como eles são constituídos internamente acelerando o tempo de desenvolvimento”.

Grande parte das linguagens de programação orientadas a objeto suportam três níveis de acessos.

Público – todos os objetos tem acesso;
Protegido – o acesso é apenas para instância, no caso para o objeto e todas as subclasses;
Privado – o acesso é apenas para o objeto da instância.

A escolha do acesso para o projeto é de grande importância, todo comportamento que queira torna visível para que o mundo exterior utilizasse o tipo de acesso público e o comportamento que deseja ocultar o acesso deve ser definido como protegido ou privado. (SINTES, 2002, p. 25)

Classe

A classe representa um conjunto de objetos, estes apesar de possuírem atributos iguais têm valores diferentes em seus atributos. Segundo Correia (2006, p. 17), “classe é um modelo e todos os seus objetos têm os mesmos atributos (embora esses atributos possam ter valores diferentes) e os mesmos métodos”.

Objetos

Para Ambler (1998, p. 5) “Um objeto é qualquer indivíduo, lugar, evento, coisa, tela, relatório ou conceito que seja aplicável ao sistema”. Todo objeto pertence a uma determinada classe e possui atributos próprios. Os atributos são mutáveis e podem receber diferentes valores de acordo com as características do objeto.

A criação de um objeto consiste em sua instanciação, segundo Pfleeger (2004, p. 213), “cada instância tem seus próprios valores de atributos, mas compartilha o nome e os comportamentos dos atributos com a outras instancias da classe”.

Herança

A herança é uma das principais características das linguagens de programação orientadas a objetos, permite o reaproveitamento de métodos e atributos diminuindo o tempo de desenvolvimento, ainda reduz as linhas de código desta forma facilita as manutenções futuras. (GUEDES, 2008, p. 43).

A utilização da herança é mais que uma simples economia de código, significa mais integridade. Quando um comportamento é alterado, todas as classes que descende dela terá acesso aos métodos atualizados sem necessidade de reprogramação.

Existem dois tipos de herança, a simples que herda apenas as características de uma superclasse, e a composta, que herda as características de duas ou mais superclasses. (CORREIA, 2006, p. 35 – 36). A Fig. 1 traz um exemplo de herança.

Fig. 1: Exemplo de Herança

Polimorfismo

O polimorfismo está diretamente ligado à hereditariedade das classes, este trabalha com a redeclararão de métodos herdados, ou seja, os métodos têm a mesma assinatura (têm o mesmo nome), mas a forma de implementação utilizada diferem o da superclasse, segundo Sintes (2002, p. 122), “de sua própria maneira, o polimorfismo é o distúrbio das múltiplas personalidades do mundo do software, pois um único nome pode expressar muitos comportamentos diferentes”.

Exemplo de Polimorfismo

Fig. 2: Exemplo de Polimorfismo

A Fig. 2 traz um método escrito em C Sharp herdado de uma superclasse e demonstra o funcionamento de polimorfismo, têm-se uma superclasse “Pessoa” e a subclasse “Profissional”, o método herdado “Listar” da subclasse “Profissional” têm o mesmo nome, mas a implementação do método é diferente da superclasse “Pessoa”.

Programação Orientado a Objetos

A orientação a objetos vem sendo utilizado amplamente para o desenvolvimento de software, por ser um paradigma que traz uma facilidade maior ao desenvolvedor na hora de dar manutenção nos softwares desenvolvidos, o que está nesse artigo é o básico existem diversos conceitos que cercam o desenvolvimento orientado a objetos isto com o tempo será passado para todos da comunidade.

Não esquece! Temos uma ótima vídeo aula sobre Programação Orientada a Objetos assiste! Vai te ajudar a assimilar os conceitos da POO.

Referencias:

AMBLER, Scott W. Análise de projeto orientado a objeto. 2. ed. Rio de Janeiro: Infobook, 1998.

CORRÊA, Fernando Antônio; VEIRA, Guilherme Alves. Construa uma aplicação 100% OO – Parte 1. Ano 05 – 61 ed. Grajaú-RJ: .Net Magazine, 2009.

CORREIA, Carlos; TAFNER, Malcon. Análise orientada a objetos. 2. ed. Florianópolis: Visual Books, 2006.

Comentarios

comentarios