Você está na página 1de 14

Introduo Conceitos bsicos

Programao Orientada a Objetos

Introduo

Introduo
Uma abordagem tpica usada no desenvolvimento de programas complexos consiste em decompor os programas em diversos mdulos e dividir cada mdulo em diversas funes. Cada funo responsvel por parte da soluo do problema. Esta abordagem de desenvolvimento se baseia na decomposio funcional. Embora a decomposio funcional tenha sido amplamente utilizada nos ltimos anos, apresenta algumas deficincias tais como o fraco acoplamento entre dados e funes. A orientao a objetos, tambm conhecida como Programao Orientada a Objetos (POO) ou ainda em ingls Object-Oriented Programming (OOP) um paradigma de anlise, projeto e programao de sistemas de software baseado na composio e interao entre diversas unidades de software chamadas de objetos. Em outras palavras, os softwares so compostos por mdulos (objetos) cujos dados e funes so fortemente acoplados.

Conceitos Bsicos
Os principais conceitos de orientao a objetos so: classes, objetos, estado, comportamento, encapsulamento, mensagens e abstrao.

Classes
Em orientao a objeto, uma classe uma estrutura que abstrai um conjunto de objetos com caractersticas similares. Uma classe define o comportamento de seus objetos atravs de mtodos e os estados possveis destes objetos atravs de atributos. Em outros termos, uma classe descreve os servios providos por seus objetos e quais informaes eles podem armazenar.

Objetos
No conceito de sistemas orientados a objetos, um objeto representa uma entidade que pode ser fsica, conceitual ou de software. uma abstrao de algo que possui fronteira definida e significado para a aplicao. Dentro da terminologia das linguagens de programao, um objeto passa a existir a partir de um "molde". Este "molde", definido como classe do objeto, define os limites, seus atributos e suas funes. Podem ser criados vrios objetos ou instncias de uma classe. A vantagem do uso de objetos na programao que estes permitem utilizar funes e atributos conhecidos (interface) sem necessidade de conhecimento sobre sua estrutura interna (encapsulamento). Para ilustrar: utilizamos o objeto "liquidificador" pressionando seus botes, mas no precisamos saber como funciona seu "motor". Se for necessrio trocar o "motor", no ser necessrio alterar o modo de us-lo. Objeto tambm considerado como uma instncia de uma classe, quando um objeto criado ele precisa ser inicializado, ou seja, para uma classe podemos ter vrios objetos.

Estado e comportamento

Uma das principais caractersticas da orientao a objeto o forte acoplamento entre dados e funes. O estado de um objeto representado por seus dados ou mais especificamente atributos. O comportamento de um objeto representado por seus mtodos ou mais especificamente subs ou functions. Como exemplo tempos a classe Mamfero que define que um mamfero(objeto) possui altura, cor e peso(atributos) e pode se comunicar (comportamento) com outros mamferos(objetos).

Encapsulamento
Encapsulamento justamente o empacotamento dos atributos e dos mtodos numa mesma classe. Isto protege os dados contra corrupo, pois somente os mtodos da classe podero alterar as estruturas de dados desta classe em questo, ilustradas pela figura.

Mensagem
Os objetos se comunicam entre si atravs de mensagem. A mensagem especifica que um determinado mtodo de um objeto necessita utilizar um ou mais mtodos de outro objeto. Podem ser passados objetos como parmetro, e, opcionalmente, algum resultado ou valor pode ser retornado. As mensagens especificam que os mtodos devem ser executados, no como estes mtodos devem ser executados. Quando um objeto A quer que o objeto B faa uma ao, o objeto A, envia uma mensagem ao objeto B: A pede para B fazer Ao = A pede para B executar mtodo 1

Abstrao
Abstrao o exame seletivo de determinados aspectos de um problema. O objetivo da abstrao isolar os aspectos que sejam importantes para algum propsito e suprimir os que no o forem. A abstrao deve sempre visar a um propsito, porque este determina o que e o que no importante.

Como exemplo conceitual de abstrao, poderamos analisar o mapa do mundo para a china antiga. Para eles, na poca, o mundo estava sob seus domnios. Percebemos que o mapa abstrai muitos detalhes do mundo real.

Abstrao o processo de extrair as caractersticas essenciais de um objeto real. A abstrao necessria para se ter um modelo fiel da realidade sobre a qual se possa operar. O conjunto de caractersticas resultante da abstrao forma um tipo de dados abstrato com informaes sobre seu estado e comportamento. A abstrao nem sempre produz os mesmos resultados, depende do contexto onde utilizada. No exemplo do mapa mundial, para a china antiga o que vale seria o mapa antigo e para os gegrafos do mundo atual o que vale seria o mapa mundi atual, realista e detalhado.

Exemplo de abstrao
No exemplo abaixo, todo a caracterstica (atributos) e comportamento(mtodos) comum a todos os mamferos foi abstrado na classe abstrata Mamfero. Classe abstrata no pode ser instanciada, em outras palavras no se pode criar objetos diretamente de Mamfero. A classe abstrata serve apenas para encapsular os mtodos e atributos comuns a todos os mamferos. A partir da classe abstrata criamos as classes concretas, que podem ser instanciadas. So classes que representam um mamfero especfico, que alm de conter todo o comportamento e caracterstica de um mamfero, possui seus prprios. Utilizamos a herana na orientao a objetos para estruturar esta relao.

Polimorfismo
o polimorfismo permite que referncias de tipos de classes mais abstratas representem o comportamento das classes concretas que referenciam. Assim, um mesmo mtodo pode apresentar vrias formas, de acordo com seu contexto. O polimorfismo importante pois permite que a semntica de uma interface seja efetivamente separada da implementao que a representa. O termo polimorfismo originrio do grego e significa "muitas formas" (poli = muitas, morphos = formas).

Você também pode gostar