You are on page 1of 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 temos 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).

You might also like