Você está na página 1de 65

1

1
SISTEMAS DE
INFORMAO
ACH2002
Orientao a Objetos
Professores:
Delano Medeiros Beder
Ftima L. S. Nunes
EACH SP
2
!
SISTEMAS DE
INFORMAO
" #ue $ a%stra&'o (
3
)
SISTEMAS DE
INFORMAO
A%stra&'o
s.f. "*era&'o do es*+rito, #ue isola de uma no&'o um
elemento, ne-li-en.iando os outros.
/esultado desta o*era&'o: a %ran.ura .onsiderada em
-eral, sem ser a*li.ada a um o%0eto, $ uma a%stra&'o.
Fa1er a%stra&'o de uma .oisa, n'o le23la em
.onsidera&'o.
S.f.*l. 4d$ias #uim$ri.as, des2in.uladas da realidade:
*erder3se em a%stra&5es.
2
o
semestre 2008 3
4
6
SISTEMAS DE
INFORMAO
A%stra&'o

Fo.ar em as*e.tos inerentes e


essen.iais de uma entidade

em desen2ol2imento de soft7are:

" 8E 9 e o 8E FA: um o%0eto, e n'o


.omo fa1

e2ita .om*rometimento *rematuro .om


detal;es
2
o
semestre 2008 4
5
<
SISTEMAS DE
INFORMAO
A%stra&'o

De*ende do *onto de 2ista


2
o
semestre 2008 5
6
=
SISTEMAS DE
INFORMAO

"%0eto $ definido a *artir de um ti*o


a%strato de dados

Com%ina&'o de dados e o*era&5es >so%re


eles? em um elemento @ni.o

".ultamento da informa&'o e
im*lementa&'o

/e*resenta&'o de o%0etos de um
determinado ti*o n'o $ 2is+2el *elos .lientes
#ue usam o usam

Ani.as o*era&5es diretas so%re o%0etos s'o


a#uelas ofere.idas na defini&'o do ti*o.
2
o
semestre 2008 6
Bi*os A%stratos de Dados
7
C
SISTEMAS DE
INFORMAO

".ultamento da informa&'o e im*lementa&'o

/e*resenta&'o de o%0etos de um determinado ti*o


n'o $ 2is+2el *elos .lientes #ue usam

Ani.as o*era&5es diretas so%re o%0etos s'o a#uelas


ofere.idas na defini&'o do ti*o.

8ual a 2anta-em do o.ultamento(


2
o
semestre 2008 7
Bi*os A%stratos de Dados
8
D
SISTEMAS DE
INFORMAO

".ultamento da informa&'o e im*lementa&'o

im*lementa&'o do ti*o *ode ser alterada sem afetar


as unidades de *ro-rama #ue fa1em uso dele
>.ontanto #ue manten;a as mesmas o*era&5es?

Aumenta a .onfia%ilidade, *ois nen;uma outra


unidade de *ro-rama *ode mudar, a.identalmente
ou inten.ionalmente, as re*resenta&5es do ti*o,
aumentando a inte-ridade de tais o%0etos
2
o
semestre 2008 8
Bi*os A%stratos de Dados
9
E
SISTEMAS DE
INFORMAO
Paradi-ma ""

"%0eto:

a%stra&'o de uma entidade real, .u0as .ara.ter+sti.as


e .om*ortamento s'o .on;e.idos

se a*resenta a outras entidades *or meio de uma


interfa.e %em definida

EFem*lo:

carro $ um o%0eto

caractersticas: modelo, mar.a, ano, .or

comportamento: a.elera, esta.iona, li-a


2
o
semestre 2008 9
10
1G
SISTEMAS DE
INFORMAO
Paradi-ma ""

His'o 4nterna: define a estrutura e o .om*ortamento


do o%0eto, ou se0a, define .ara.ter+sti.as e
.om*ortamentos

His'o EFterna: interfa.e #ue define .omo o o%0eto $


2isto *or outros o%0etos

Mensa-em: .omuni.a&'o entre o%0etos


2
o
semestre 2008 10
11
11
SISTEMAS DE
INFORMAO
Paradi-ma ""

POO um paradigma de programao

A unidade de programao a classe de objetos

Quais os componentes de uma classe?


2
o
semestre 2008 11
12
1!
SISTEMAS DE
INFORMAO
Paradi-ma ""

POO um paradigma de programao

A unidade de programao a classe de objetos

Quais os componentes de uma classe?

atributos (caractersticas dos objetos

mtodos (comportamento dos objetos


2
o
semestre 2008 12
13
1)
SISTEMAS DE
INFORMAO

EFtens'o do .on.eito de Bi*os A%stratos de Dados

Com%ina&'o de dados e o*era&5es >so%re eles? em um


elemento @ni.o

Classe: defini&'o do Bi*o A%strato de Dados

"%0eto: .ada instIn.ia deri2ada da .lasse

/e*resenta em soft7are entidades #ue


en.ontramos no mundo real
2
o
semestre 2008 13
"rienta&'o a "%0etos
14
16
SISTEMAS DE
INFORMAO

Classe: defini&'o do Bi*o A%strato de Dados

"%0eto: .ada instIn.ia deri2ada da .lasse

EFem*lo:

Classe Carro >define um Bi*o A%strato de


Dados denominado Carro?

"%0etos instan.iados a *artir da .lasse Carro:

%m7, mer.edes, .orsa, fiesta


2
o
semestre 2008 14
"rienta&'o a "%0etos
15
1<
SISTEMAS DE
INFORMAO

ClassesJ"%0etos

En.a*sulamento

".ultamento da informa&'o e im*lementa&'o


>A%stra&'o?

/eten&'o de estado

4dentidade de o%0eto

Mensa-ens

Heran&a

PolimorfismoJHin.ula&'o tardia >late binding?

/ela.ionamento entre .lassesJo%0etos


2
o
semestre 2008 15
"rienta&'o a o%0etos
16
1=
SISTEMAS DE
INFORMAO

ClassesJ"%0etos

En.a*sulamento

".ultamento da informa&'o e im*lementa&'o


>A%stra&'o?

/eten&'o de estado

4dentidade de o%0eto

Mensa-ens

Heran&a

PolimorfismoJHin.ula&'o tardia >late binding?

/ela.ionamento entre .lassesJo%0etos


2
o
semestre 2008 16
"rienta&'o a o%0etos
17
1C
SISTEMAS DE
INFORMAO

Classe: define um .on0unto de o%0etos .om


a mesma estrutura e o mesmo
.om*ortamento

Carro, Pessoa, Aluno s'o eFem*los de .lasses

BMW e Ferrari s'o dois o%0etos da .lasse


Carro

Joo e Maria s'o dois o%0etos da .lasse Pessoa

A .lasse $ o #ue 2o.K *ro0eta e *ro-rama

" o%0eto $ o #ue 2o.K .ria >a *artir de uma


.lasse? em tem*o de eFe.u&'o
2
o
semestre 2008 17
Classes J "%0etos
18
1D
SISTEMAS DE
INFORMAO

Bodo o%0eto $ .riado a *artir >$ uma instIn.ia? de


uma .lasse

Dados >atri%utos? s'o asso.iados a .ada o%0eto

Classes *odem .onter atri%utos -erais >e


o*era&5es? inde*endentes das di2ersas instIn.ias

M$todos e atri%utos estti.os >CLL e Ma2a?


2
o
semestre 2008 18
Classes J "%0etos
19
1E
SISTEMAS DE
INFORMAO

EFem*lo: um Estudante e uma Dis.i*lina


*odem ser .onsiderados o%0etos, *ois #ual#uer
um deles *ode ser definido em termos de um
.on0unto de atri%utos e o*era&5es

"%0etos *odem se rela.ionar um .om o outro

um Estudante *ode Cursar uma Dis.i*lina

o rela.ionamento Cursar define uma .oneF'o


es*e.+fi.a entre Estudante e Dis.i*lina
2
o
semestre 2008 19
"%0etos
20
!G
SISTEMAS DE
INFORMAO

"utros eFem*los de o%0etos:

um .om*utador

uma tela de um a*li.ati2o do .om*utador

uma reser2a de li2ro

um li2ro

um *ro.esso de identifi.a&'o de a.essos ile-ais numa rede de


.om*utadores

um a.esso ile-al
2
o
semestre 2008 20
"%0eto N Atri%utos L M$todos L En.a*sulamento
dados fun.ionalidade
>.om*ortamento?
"%0etos
21
!1
SISTEMAS DE
INFORMAO

/e*resentam um .on0unto de informa&5es, ou se0a,


elementos de dados #ue .ara.teri1am um o%0eto

EFem*los:

o%0eto Estudante

atri%utos: nome, nro SP, ano de in-resso, data de nas.imento, O

o%0eto Dis.i*lina

atri%utos: nome, .Pdi-o, nro de .r$ditos, *r$3re#uisitos,


e#ui2alKn.ias, O.

o%0eto /eser2a de HQo

atri%utos: n@mero da reser2a, n@mero do 2Qo, nome *assa-eiro,


data 2alidade da reser2a, *rioridade, O.
2
o
semestre 2008 21
Atri%utos
22
!!
SISTEMAS DE
INFORMAO

8uando um o%0eto $ ma*eado dentro do dom+nio do soft7are,


os *ro.essos #ue *odem alterar seus atri%utos >dados? s'o
denominados "*era&5es ou M$todos

M$todos s'o in2o.ados *or Mensa-ens

Cada o%0eto *ossui seu *rP*rio .on0unto de m$todos

Defini&5es:

*ro.edimentos definidos e de.larados #ue atuam so%re o o%0eto

des.ri&'o de uma se#uKn.ia de a&5es a serem eFe.utadas *elo


o%0eto

es*e.ifi.a&'o de C"M" o o%0eto de2e FA:E/ al-uma .oisa

s'o intr+nse.os ao o%0eto e n'o *odem ser se*arados dele


2
o
semestre 2008 22
M$todos
23
!)
SISTEMAS DE
INFORMAO

Podem estar *resentes tanto *ara atri%utos .omo


*ara m$todos

Em *rin.+*io, trKs .ate-orias de 2isi%ilidade *odem


ser definidas:

*@%li.o: o atri%uto ou m$todo de um o%0eto dessa .lasse *ode ser


a.essado *or #ual#uer outro o%0eto >2isi%ilidade eFterna total?

*ri2ati2o: o atri%uto ou m$todo de um o%0eto dessa .lasse n'o *ode


ser a.essado *or nen;um outro o%0eto >nen;uma 2isi%ilidade
eFterna?

*rote-ido: o atri%uto ou m$todo de um o%0eto dessa .lasse *ode ser


a.essado a*enas *or o%0etos de .lasses #ue se0am deri2adas dessa
*or meio do me.anismo de ;eran&a
2
o
semestre 2008 23
Modifi.adores de Hisi%ilidade
24
!6
SISTEMAS DE
INFORMAO

ClassesJ"%0etos

En.a*sulamento

".ultamento da informa&'o e im*lementa&'o


>A%stra&'o?

/eten&'o de estado

4dentidade de o%0eto

Mensa-ens

Heran&a

PolimorfismoJHin.ula&'o tardia >late binding?

/ela.ionamento entre .lassesJo%0etos


2
o
semestre 2008 24
"rienta&'o a o%0etos
25
!<
SISTEMAS DE
INFORMAO

"utros *aradi-mas
.on2en.ionais >estrutural, *or
eFem*lo? se*aram dados e
o*era&5es so%re eles

" o%0eto .ont$m tantos os


dados #uanto as o*era&5es:

Dados: atri%utos

4m*lementa&'o das o*era&5es:


m$todos
2
o
semestre 2008 25
Dados Procedimentos
Dados
Operaes
En.a*sulamento
26
!=
SISTEMAS DE
INFORMAO
2
o
semestre 2008 26
Dados
(atributos)
Operaes
(mtodos)
Diagrama de Classes UML
Carro
cor
modelo
marca
ano
acelera
estaciona
liga
27
!C
SISTEMAS DE
INFORMAO

tili1a&'o de en.a*sulamento *ara restrin-ir a


2isi%ilidade eFterna de detal;es de
informa&5es >dados? ou im*lementa&5es
>o*era&5es?, os #uais s'o internos R estrutura
de en.a*sulamento
2
o
semestre 2008 27
Dados
Operaes

!o poss"el c#egar aos dados


diretamente

$liente no tem con#ecimento


acerca de como as opera%es so
implementadas
En.a*sulamento e ".ultamento de
4nforma&5es
28
!D
SISTEMAS DE
INFORMAO

EFem*lo:
2
o
semestre 2008 28
En.a*sulamento e ".ultamento de
4nforma&5es
Carro
cor
modelo
marca
ano
acelera
estaciona
liga
deine!no
deine"odelo

Classe Carro encaps#la


atri$#tos e m%todos reerentes a
#m tipo a$strato

Cada cliente &programa' (#e


#sar esta classe para deinir
o$)etos n*o sa$er+ como os
m%todos oram implementados
e n*o poder+ alterar os atri$#tos
diretamente,

Cliente pode #sar somente os


m%todos (#e l-e ser*o
permitidos,

29
!E
SISTEMAS DE
INFORMAO

ClassesJ"%0etos

En.a*sulamento

".ultamento da informa&'o e im*lementa&'o


>A%stra&'o?

/eten&'o de estado

4dentidade de o%0eto

Mensa-ens

Heran&a

PolimorfismoJHin.ula&'o tardia >late binding?

/ela.ionamento entre .lassesJo%0etos


2
o
semestre 2008 29
"rienta&'o a o%0etos
30
)G
SISTEMAS DE
INFORMAO

Ha%ilidade de um o%0eto reter seu estado

estado .on0unto de 2alores de seus atri%utos

m o%0eto $ .iente de seu *assado >o*era&5es


#ue foram eFe.utadas *re2iamente?

" estado influen.ia o .om*ortamento do o%0eto


2
o
semestre 2008 30
/eten&'o de Estado
31
)1
SISTEMAS DE
INFORMAO
2
o
semestre 2008 31
/eten&'o de Estado

EFem*lo:
Carro
cor
modelo
marca
ano
acelera
estaciona
liga
deine!no
e.i$e!no

/#pon-a (#e oram deinidos dois


o$)etos0 bmw e corsa
Carro bmw = new Carro()
Carro corsa = new Carro()

se e# #sar o m%todo defineAno para


bmw e tam$%m #s+1lo para corsa,
cada #m dos o$)etos g#ardar+ o se#
pr2prio ano,

$m3,deine!no&2008'

corsa,deine!no&2001'

$m3,e.i$e!no&' mostrar+ 2008

corsa,e.i$e!no&' mostrar+ 2001


32
)!
SISTEMAS DE
INFORMAO

ClassesJ"%0etos

En.a*sulamento

".ultamento da informa&'o e im*lementa&'o


>A%stra&'o?

/eten&'o de estado

4dentidade de o%0eto

Mensa-ens

Heran&a

PolimorfismoJHin.ula&'o tardia >late binding?

/ela.ionamento entre .lassesJo%0etos


2
o
semestre 2008 32
"rienta&'o a o%0etos
33
))
SISTEMAS DE
INFORMAO

Pro*riedade *ela #ual .ada o%0eto


>inde*endentemente de sua .lasse ou seu estado?
*ode ser identifi.ado e tratado .omo uma entidade
distinta de soft7are

" mesmo identifi.ador *ermane.e .om o o%0eto


*or toda sua 2ida

Dois o%0etos nun.a *odem ter o mesmo


identifi.ador

Dois o%0etos *odem ter o mesmo SestadoT, *or$m


suas identidades s'o distintas
2
o
semestre 2008 33
4dentidade de "%0eto
34
)6
SISTEMAS DE
INFORMAO
2
o
semestre 2008 34
4dentidade de "%0eto

EFem*lo:
Carro
cor
modelo
marca
ano
acelera
estaciona
liga
deine!no
e.i$e!no

/#pon-a (#e oram deinidos dois


o$)etos distintos0 bmw e corsa

bmw ser+ identiicador do


primeiro o$)eto d#rante s#a
e.ist4ncia

corsa ser+ identiicador do


seg#ndo o$)eto d#rante s#a
e.ist4ncia

mesmo (#e aos atri$#tos dos dois


o$)etos se)am atri$#5dos os mesmos
6alores7 eles ser*o o$)etos distintos
35
)<
SISTEMAS DE
INFORMAO

ClassesJ"%0etos

En.a*sulamento

".ultamento da informa&'o e im*lementa&'o


>A%stra&'o?

/eten&'o de estado

4dentidade de o%0eto

Mensa-ens

Heran&a

PolimorfismoJHin.ula&'o tardia >late binding?

/ela.ionamento entre .lassesJo%0etos


2
o
semestre 2008 35
"rienta&'o a o%0etos
36
)=
SISTEMAS DE
INFORMAO

m o%0eto *ode se .omuni.ar .om outros atra2$s


da tro.a de mensa-ens

ma mensa-em $ o 2e+.ulo *elo #ual um o%0eto


remetente obj1 transmite a um o%0eto destinatrio
obj2 um *edido *ara o obj2 a*li.ar um de seus
m$todos

Mensa-ens o.orrem #uando o.orre in2o.a&5es


>.;amadas a m$todos?
2
o
semestre 2008 36
Mensa-ens
37
)C
SISTEMAS DE
INFORMAO
2
o
semestre 2008 37
Mensa-ens

EFem*lo:
8stacionamento
(#antidadeCarros
adicionaCarro&'

/#pon-a (#e o m%todo


adicionaCarro aa as seg#intes
aes0

instancia #m carro
Carro carro1 = new Carro()

deine ano e modelo do carro


instanciado
carro1.defineAno(2001)
carro1.defineModelo(ferrari)

!o in6ocar os m%todos defineAno e


defineModelo, est+ ocorrendo #ma
troca de mensagens entre #m o$)eto
da Classe Estacionamento e #m
o$)eto da Classe Carro
38
)D
SISTEMAS DE
INFORMAO

ClassesJ"%0etos

En.a*sulamento

".ultamento da informa&'o e im*lementa&'o


>A%stra&'o?

/eten&'o de estado

4dentidade de o%0eto

Mensa-ens

Heran&a

PolimorfismoJHin.ula&'o tardia >late binding?

/ela.ionamento entre .lassesJo%0etos


2
o
semestre 2008 38
"rienta&'o a o%0etos
39
)E
SISTEMAS DE
INFORMAO

8ual $ o .on.eito de ;eran&a no


nosso dia3a3dia (((
2
o
semestre 2008 39
Heran&a
40
6G
SISTEMAS DE
INFORMAO

" #ue torna a .om*uta&'o orientada a


o%0etos @ni.a $ o .on.eito de ;eran&a

Me.anismo #ue *ermite definir uma no2a


.lasse >su%.lasse? a *artir de uma .lasse 0
eFistente >su*er.lasse?
2
o
semestre 2008 40
Heran&a
41
61
SISTEMAS DE
INFORMAO

A su%.lasse ;erda as .ara.ter+sti.as da


su*er.lasse:

os atri%utos e os m$todos da su*er.lasse *assam a


ser tam%$m atri%utos e m$todos da su%.lasse

a su%.lasse *ode adi.ionar no2os atri%utos e


m$todos, e rees.re2er m$todos ;erdados

Portanto: ;eran&a $ a ;a%ilidade de um o%0eto


deri2ar seus atri%utos >dados? e m$todos
>fun.ionalidade? automati.amente de outro o%0eto
2
o
semestre 2008 41
Heran&a
42
6!
SISTEMAS DE
INFORMAO

Permite modelar uma ;ierar#uia entre .lasses:


.lasses mais es*e.iali1adas >su%.lasses? ;erdam
*ro*riedades da .lasse mais -eral >su*er.lasse?

Cria uma no2a .lasse inserindo somente as


diferen&as desta *ara sua su*er.lasse

4dentifi.a3se a *ossi%ilidade de ;eran&a *or meio da


se-uinte eF*ress'o t+*i.a: S$ um ti*o deT
2
o
semestre 2008 42
Heran&a
43
6)
SISTEMAS DE
INFORMAO

Heran&a: me.anismo *ara deri2ar no2as .lasses a


*artir das .lasses 0 eFistentes

EFem*lo: Classe Camin;'o $ deri2ada da Classe Carro

Camin;'o tem os atri%utos taman;o e .a*a.idade, al$m


dos atri%utos ;erdados da Classe Carro

ma .lasse deri2ada ;erda a re*resenta&'o dos


atri%utos e o*era&5es *@%li.as da .lasse %ase,
*odendo:

adi.ionar no2as o*era&5es

estender a re*resenta&'o dos atri%utos

so%re*or a im*lementa&'o de o*era&5es 0 ;erdadas


2
o
semestre 2008 43
Heran&a
44
66
SISTEMAS DE
INFORMAO
2
o
semestre 2008 44
Diagrama de
Classes UML
(Herana)
Heran&a
Carro
cor
modelo
marca
ano
acelera
estaciona
liga
deine!no
e.i$e!no
Camin-*o
cor
modelo
marca
ano
taman-o
capacidade
acelera
estaciona
liga
deine!no
e.i$e!no
Carro9mportado
cor
modelo
marca
ano
pa5s
acelera
estaciona
liga
deine!no
e.i$e!no
superclasse
subclasse
subclasse
45
6<
SISTEMAS DE
INFORMAO

Constru&'o de forma in.rementada de


soft7are: >/eutili1a&'o de Soft7are?

Boa *rti.a:

Primeiro, .onstruir .lasses *ara lidar .om


o .aso mais -eral

Em se-uida, a fim de tratar os .asos


es*e.iais, definir .lasses es*e.iali1adas 3
;erdadas da *rimeira .lasse
2
o
semestre 2008 45
Heran&a
46
6=
SISTEMAS DE
INFORMAO

Ca*a.idade de Su%stitui&'o

De2e ser .a*a1 de su%stituir uma .lasse


Deria!a dentro de #ual#uer *ro-rama #ue eFi0a
uma .lasse Base e tudo de2e fun.ionar %em

Basi.amente, isso si-nifi.a #ue, se 2o.K es.re2er


um *ro-rama su*ondo #ue tem um Carro, ent'o
*ode usar li2remente #ual#uer .lasse ;erdada de
Carro "Camin#o$ Carro%mporta!o&.
2
o
semestre 2008 46
Heran&a
47
6C
SISTEMAS DE
INFORMAO

'obrecar(a : dar um mesmo nome a


mais de um m$todo

Desde #ue a assinatura se0a !i)erente

assinat*ra par+metros , retorno

A redefini&'o de um m$todo em .lasses


diferentes, dentro de uma estrutura de
;eran&a $ .on;e.ida .omo overriding

Ne.essita ter a mesma assinat*ra


2
o
semestre 2008 47
So%re.ar-a (overloading)
/edefini&'o (overriding)
48
6D
SISTEMAS DE
INFORMAO
2
o
semestre 2008 48
Overriding
Overloading Novo mtodo
"2erloadin- U "2erridin-
49
6E
SISTEMAS DE
INFORMAO
A aV JJ define o%0eto do ti*o A
...
i) usurio di1 O-
t#en a N ne7 B>?V JJ Ca*a.idade de Su%stitui&'o
e.se a N ne7 C>?V JJ Ca*a.idade de Su%stitui&'o
...
a.F>1G?V JJ "W.
a.F>SAulaT?V JJ /rro !e compi.ao: F>Strin-? n'o est
JJ definida na .lasse A
2
o
semestre 2008 49
"2erloadin-
50
<G
SISTEMAS DE
INFORMAO

ClassesJ"%0etos

En.a*sulamento

".ultamento da informa&'o e im*lementa&'o


>A%stra&'o?

/eten&'o de estado

4dentidade de o%0eto

Mensa-ens

Heran&a

PolimorfismoJHin.ula&'o tardia >late binding?

/ela.ionamento entre .lassesJo%0etos


2
o
semestre 2008 50
"rienta&'o a o%0etos
51
<1
SISTEMAS DE
INFORMAO

S" #ue *ossui 2rias formasT

Pro*riedade de se usar o mesmo nome *ara


m$todos diferentes, im*lementados em diferentes
n+2eis de uma ;ierar#uia de .lasses

Para .ada .lasse, tem3se um .om*ortamento


es*e.+fi.o *ara o m$todo
2
o
semestre 2008 51
Polimorfismo
52
<!
SISTEMAS DE
INFORMAO

Ha%ilidade *ela #ual uma @ni.a o*era&'o *ode ser


definida em mais de uma .lasse e assumir
im*lementa&5es diferentes em .ada uma dessas
.lasses

Overriding de o*era&5es

Hin.ula&'o tardia >late binding? $ a t$.ni.a *ela


#ual a o*era&'o a ser eFe.utada $ determinada
somente em tem*o de eFe.u&'o

Ma2a >im*lementado diretamente?

Pala2ra .;a2e irt*a. >Lin-ua-em CLL?


2
o
semestre 2008 52
Polimorfismo J Hin.ula&'o Bardia
53
<)
SISTEMAS DE
INFORMAO
Pol+-ono *V
...
i) usurio di1 O-
t#en * N ne7 BriIn-ulo>?V
e.se * N ne7 /etIn-ulo>?V
...
*..al.ularArea>?V JJ a#ui p *ode referir3se a um o%0eto
JJ 0ri+n(*.o ou a um o%0eto 1et+n(*.o
JJ Ca*a.idade de Su%stitui&'o
2
o
semestre 2008 53
Dados
:ri;ng#lo
calc#lar!rea
Dados
<et;ng#lo
calc#lar!rea
p
Polimorfismo J Hin.ula&'o Bardia
54
<6
SISTEMAS DE
INFORMAO

Permite a .ada o%0eto res*onder a um formato de


mensa-em da maneira a*ro*riada R .lasse >ou
su%.lasse? da #ual foi instan.iado

ma mesma o*era&'o *ode a*resentar


.om*ortamentos diferentes em .lasses >ou
su%.lasses? distintas

ma o*era&'o *ode ter diferentes


im*lementa&5es, isto $, mais de um m$todo *ode
im*lement3la
2
o
semestre 2008 54
Polimorfismo
55
<<
SISTEMAS DE
INFORMAO

ma .lasse *ode ;erdar .ara.ter+sti.as de mais de


uma .lasse, ou se0a, *ode ter mais de uma
su*er.lasse

a su%.lasse ;erda todos os atri%utos e m$todos de todas as


suas su*er.lasses

atri%utosJm$todos de um mesmo an.estral #ue Sal.an.emT a


su%.lasse *or mais de um .amin;o na ;ierar#uia s'o
;erdados a*enas uma 2e1 >s'o o mesmo atri%utoJm$todo?.
EF. a se-uir: atri%uto .or na ;ierar#uia de He+.ulo

.onflitos em defini&5es *aralelas na ;ierar#uia *odem -erar


am%i-uidades >eF. a se-uir: m$todo o*erar na ;ierar#uia de
He+.ulo?
2
o
semestre 2008 55
Heran&a M@lti*la
56
<=
SISTEMAS DE
INFORMAO
2
o
semestre 2008 56
Atri%uto:
3 .or
M$todo:
3o*erar
He+.ulo
He+.ulo Berrestre He+.ulo A#uti.o
Atri%uto:
3 .or
M$todo:
3 o*erar
Atri%uto:
3 .or
M$todo:
3 o*erar
Atri%uto:
3 .or
M$todo:
3 o*erar ((((
Atri%uto:
3 .or
M$todo:
3 o*erar
Atri%uto:
3 .or
M$todo:
3 o*erar
He+.ulo Anf+%io
Carro Bar.o
Heran&a M@lti*la
57
<C
SISTEMAS DE
INFORMAO

En.a*sulamento

".ultamento da informa&'o e im*lementa&'o


>A%stra&'o?

/eten&'o de estado

4dentidade de o%0eto

Mensa-ens

ClassesJ"%0etos

Heran&a

PolimorfismoJHin.ula&'o tardia >late binding?

/ela.ionamento entre .lassesJo%0etos


2
o
semestre 2008 57
"rienta&'o a o%0etos
58
<D
SISTEMAS DE
INFORMAO

ma .lasse *ode ser .om*osta *or outras


.lasses, .onsideradas *artes ou .om*onentes
2
o
semestre 2008 58
Com*osi&'o
De.om*osi&'o
Monitor Mouse Be.lado
CP /AM
Com*utador
SXa%ineteT
O
O
A-re-a&'o e Com*osi&'o
59
<E
SISTEMAS DE
INFORMAO

A .om*osi&'o $ fre#uentemente referida *or


rela.ionamento Stodo3*arteT, no #ual o a-re-ado
>StodoT? $ .om*osto de *artes
2
o
semestre 2008 59
Com*osi&'o
De.om*osi&'o
Monitor Mouse Be.lado
CP /AM
Com*utador
SXa%ineteT
O
O
A-re-a&'o e Com*osi&'o
60
=G
SISTEMAS DE
INFORMAO

Ca*turam rela.ionamentos do ti*o Stodo3*arteT


entre o%0etos

N'o eFiste ;eran&a entre o%0etos *arti.i*ando de


uma a-re-a&'o

A-re-a&5es redu1em a .om*leFidade ao *ermitir


tratar 2rios o%0etos .omo um @ni.o
2
o
semestre 2008 60
/ela.ionamento: A-re-a&'o
61
=1
SISTEMAS DE
INFORMAO

Nesse ti*o de a-re-a&'o, os o%0etos da .lasse


S*arteT n'o *odem 2i2er #uando o o%0eto StodoT $
destru+do

N'o .om*artil;amento: os o%0etos da .lasse


S*arteT s'o .om*onentes de a*enas um o%0eto
StodoT
2
o
semestre 2008 61
/ela.ionamento: Com*osi&'o
62
=!
SISTEMAS DE
INFORMAO
2
o
semestre 2008 62
Diagramas de Classes UML (grega!o e Composi!o)
A-re-a&'o Y Com*osi&'o
63
=)
SISTEMAS DE
INFORMAO

Heran&a $ uma rela&'o S$ umT

Carro 2 *m He+.ulo

A-re-a&'oJCom*osi&'o $ uma rela&'o S$


*arte de umT

Pneu 2 parte !e *m Carro

Motor 2 parte !e *m Carro


2
o
semestre 2008 63
Heran&a e
A-re-a&'oJCom*osi&'o
64
=6
SISTEMAS DE
INFORMAO

ma asso.ia&'o nos *ermite .a*turar


rela.ionamentos %si.os #ue eFistem entre
.on0untos de o%0etos
2
o
semestre 2008 64
Diagramas de Classes UML (ssocia!o)
Asso.ia&'o
65
=<
SISTEMAS DE
INFORMAO
ACH2002
Orientao a Objetos
Professores:
Delano Medeiros Beder
Ftima L. S. Nunes
EACH SP