Escolar Documentos
Profissional Documentos
Cultura Documentos
Entenda o contexto da modelagem de software e sistemas, descubra a importncia e as principais caractersticas da orientao a objetos.
Paradigma ==> forma de abordar um problema. Surgiu no fim dos anos 60. Hoje em dia, praticamente suplantou o paradigma anterior, o paradigma estruturado...
Alan a!, um dos pais do paradigma da orientao a objetos, formulou a c"amada analogia biol#gica. $%omo seria um sistema de soft&are 'ue funcionasse como um ser (i(o)
Analogia +iol#gica
%ada $c,lula- interagiria com outras c,lulas atra(,s do en(io de mensagens para reali.ar um objeti(o comum. Adicionalmente, cada c,lula se comportaria como uma unidade aut/noma.
Analogia +iol#gica
1e uma forma mais geral, a! pensou em como construir um sistema de soft&are a partir de agentes aut/nomos 'ue interagem entre si. %om isso, ele estabeleceu os princ2pios da orientao a objetos.
5udo , um objeto. Objeto 6 super (ari7(el8 arma.ena dados, mas se pode fa.er re'uisi9es a esse objeto, pedindo 'ue ele faa opera9es sobre si pr#prio. :m teoria, 'ual'uer elemento conceitual do problema pode ser representado como um objeto em um programa ;:<.8 cac"orros, li(ros, s#cios, empr,stimos, etc= .
?m programa , uma coleo de objetos di.endo uns aos outros o 'ue fa.er. 4ara fa.er uma re'uisio a um objeto (oc@ $manda uma mensagem- para este objeto. Aensagem 6 c"amada de um procedimento ou funo pertencente a um objeto em particular.
>
?m objeto pode ser composto por (7rios outros objetos ?m no(o tipo de objeto pode ser criado a partir de objetos e<istentes. 1essa forma, comple<idade pode ser adicionada a um programa e escondida por tr7s da simplicidade de uso dos objetos.
5odo objeto tem um tipo. Objeto 6 instDncia de uma classe, onde classe , um sin/nimo de tipo. A 'uesto mais importante relati(a a uma classe , $'ue mensagens eu posso en(iar para uma instDncia dessa classe)-
5odos os objetos do mesmo tipo podem receber as mesmas mensagens. Fa figura abai<o, o objeto $%2rculoaceita 'ual'uer mensagem endereada a uma $Gorma Heom,trica-. :ssa capacidade de $subtituio- de um objeto por outro , um dos mais poderosos conceitos em orientao a objetos. ;Herana=
E0
Abstrao
EE
Objeto
1efinio8 ?m conceito, com significado espec2fico em um conte<to 4rop#sito8 Jepresentar uma entidade do mundo real Objetos possuem8 Identidade %aracter2sticas 'ue determinam seu estado %omportamento espec2fico definido por um conjunto de a9es
E2
:<emplo
+eija3Glor Identidade:: o beija-flor que vem ao meu jardim Estado:
penas azuis bico fino vo rpido
Comportamento:
voar piar
E3
:<emplo
Comportamento::
andar falar comer rir
E*
:<emplo
5elefone Identidade:: n'mero "(#6-!)*) Estado::
azul "+, -.z tone
Comportamento::
tocar discar
E0
Objeto
Jepresentao
/stado 0caracter1sticas2
4dentidade
3omportamento
E6
Objeto
4nterface da 3lasse
E>
:ncapsulamento
A interface de um objeto , o 'ue ele con"ece e o 'ue ele sabe fa.er, sem descre(er como o objeto con"ece ou fa.. A interface de um objeto define os ser(ios 'ue ele pode reali.ar ;mensagens 'ue ele recebe=. ?ma interface pode ter (7rias formas de implementao.
EB
%lasse
$f7brica de objetos-.
EC
%lasse
! $G7brica de Objetos-.
Objetos8 ! So instDncias de alguma classe. ! 1e uma classe so id@nticos em sua interface e implementao. ! Diferem-se de outros por seu estado e sua identidade.
20
2E
Implementao em Ma(a
22
Implementao em Ma(a
23
%lasses
Classe
4nst9ncias 0objetos2
2*
Implementao em Ma(a
20
Implementao em Ma(a
26
Atributos
1escre(em as caracter2sticas das instDncias de uma classe Seus (alores definem o estado do objeto O estado de um objeto pode mudar ao longo de sua e<ist@ncia A identidade de um objeto, contudo, nunca muda
Funcionrio_Helena :ome;.elena <eis :asc;"* !1 1)6( 5alrio ; ,+!!! 4nformar5alrio 3alcular4dade Funcionrio_Mrio :ome;Mrio 5 :asc;16 !" 1)#! 5alrio ; =+!!! 4nformar5alrio 3alcular4dade
2>
Ser(iosNOpera9es
Jepresentam o comportamento das instDncias de uma classe %orrespondem Os a9es das instDncias de uma classe
4000
Funcionrio_Helena :ome;.elena <eis :asc;"* !1 1)6( 5alrio ; ,+!!! 4nformar5alrio 3alcular4dade Funcionrio_Mrio :ome;Mrio 5 :asc;16 !" 1)#! 5alrio ; =+!!! 4nformar5alrio 3alcular4dade
2B
Implementao em Ma(a
2C
Ser(iosNA,todos
Alguns m,todos especiais8 ! %onstrutores L criam objetos de uma classe ! 1estrutores L destroem objetos de uma classe
30
3E
32
Herana
*trav&s da herana# novas classes podem ser derivadas das classes e.istentes.
* nova classe herda propriedades e m&todos da classe base. * nova classe tamb&m pode adicionar suas prprias propriedades e m&todos.
33
Herana
3*
Herana
%uponha 'ue a /lasse0 herda da /lasse*
30
Herana
O objeto da classe0 tem agora dispon(veis os m&todos da classe /lasse*# sem ter 'ue reescrev$los na /lasse0. 3m objeto da /lasse0 tamb&m & um objeto da classe /lasse*.
36
Herana
4acilita a manuteno do cdigo5 Os m&todos no so replicados. %e for necess)rio alterar o cdigo do m&todo m6 7# basta alter)-lo na /lasse*. * /lasse0 pode 8recusar8 parte da herana# reimplementando os m&todos herdados# sobrescrevendo-os.
3>
Herana
O mtodo m3(), agora disponvel para objetos da ClasseB, aquele implementado em ClasseB.
3B
Herana
3C
Herana
ERRADO!!!!
*0
Herana
Herana
Pode surgir a partir da refatorao de classes e.istentes# de modo a eliminar a duplicao de cdigo
Herana
=efatorao
*3
%omposio
* classe cont&m refer$ncias para objetos de outras classes5 ! >stas refer$ncias so tamb&m atributos da classe. ;aneira alternativa de estender a funcionalidade de uma classe# agregando funcionalidades de outras classes. :erana ? 3; . /omposio . ,>; 3;
**
%omposio
O mecanismo de herana nem sempre & apropriado >stender funcionalidade atrav&s de herana pode no ser 8natural85 ! 3ma conta de investimento & uma conta banc)ria@ ! 3ma conta de investimento no & uma Pessoa@
*0
%omposio
*6
%omposio
8 ?tili.ando uma cone<o de ocorr@ncia, o modelo poderia ser mel"orado da seguinte forma8
*>
4olimorfismo
8Programao Aen&rica8. ,rata objetos na mesma hierar'uia de classes como se todos fossem objetos da superclasse. ,ornam o programa e.tens(vel5 ! 4acilidade para adicionar novas classes.
*B
4olimorfismo
/onceito /have Objetos das subclasses podem ser tratados como objetos da superclasse
::Project2
A m"#...$ m%#...$
! lasse B " #$! lasse A #m objeto da lasse B pode ser usado em qualquer lugar onde um objeto da lasse A esperado.
+ m"#...$ m&#...$
*C
4olimorfismo
,abelas 9irtuais
3lasse >
::Project2
A m"#...$ m%#...$
3lasse A opera6@o m102 m"02 m=02 m?todo invocado A+m102 >+m"02 A+m=02
m"#...$ m&#...$
00
4olimorfismo
::Unit
MPindo&s
0E
4olimorfismo
procedure TForm1.FormCreate(Sender: TObject ; be!in i" SO#$Windows$ t%en jWin :# JWindows.Create e&se jLin :# JLinux.Create; end; procedure TForm1.W'S(sCommand()ar 'essa!e: T'essa!e ; be!in i" ('essa!e.w*aram # SC+',-,',./ t%en i" SO#$Windows$ t%en jWin.minimi0e e&se jLin.minimi0e e&se i" ('essa!e.w*aram # SC+'12,',./ t%en i" SO#$Windows$ t%en jWin.maximi0e e&se jLin.maximi0e e&se i" ('essa!e.w*aram # SC+CLOS/ t%en
02
4olimorfismo
%oluo Polimrfica
::Unit
Banela close(...) maximize(...) minimize(...) move(...) open(...)
03
4olimorfismo
procedure TForm1.FormCreate(Sender: TObject ; be!in i" SO#$Windows$ t%en jan :# JWindows.Create e&se jan :# JLinux.Create; end; procedure TForm1.W'S(sCommand()ar 'essa!e: T'essa!e ; be!in i" ('essa!e.w*aram # SC+',-,',./ t%en jan.minimi0e e&se i" ('essa!e.w*aram # SC+'12,',./ t%en jan.maximi0e e&se i" ('essa!e.w*aram # SC+CLOS/ t%en jan.c&ose e&se i" ('essa!e.w*aram # SC+'O3/ t%en jan.mo)e e&se in%erited; end;
0*
4olimorfismo
Observe ainda como seria f)cil acrescentar uma janela ;O,C4 para o %un %olaris
Banela close(...) maximize(...) minimize(...) move(...) open(...)
::Unit
00
4olimorfismo
procedure TForm1.FormCreate(Sender: TObject ; be!in i" SO#$Windows$ t%en jan :# JWindows.Create e&se i" SO # $Linux$ t%en jan :# JLinux.Create e&se jan :# JSo&aris.Create; end; procedure TForm1.W'S(sCommand()ar 'essa!e: T'essa!e ; be!in i" ('essa!e.w*aram # SC+',-,',./ t%en jan.minimi0e e&se i" ('essa!e.w*aram # SC+'12,',./ t%en jan.maximi0e e&se i" ('essa!e.w*aram # SC+CLOS/ t%en jan.c&ose e&se i" ('essa!e.w*aram # SC+'O3/ t%en jan.mo)e e&se in%erited; end;
06
0>
0B
)omportamento
0C
1iagrama de %lasses
Estrutura
60
1iagrama de Se'R@ncia
)omportamento
6E
1iagrama de %olaborao
)omportamento
62
1iagrama de :stados
Estrutura e )omportamento
63
1iagrama de Ati(idades
)omportamento
6*
1iagrama de %omponentes
Estrutura
60
1iagrama de Implantao
Estrutura
66
6>
1iagrama de Ati(idades
8 1escre(e processo de neg#cio e flu<o de trabal"oS 8 Suportam comportamento paralo ;diferena para flu<ograma=S 8 %emelhante Diagrama de >stadosD
6B
1iagrama de Ati(idades
M o s t r a q u e m f a z o q u
6C
>0
O 4ioneirismo do Infnet
O Infnet foi o pioneiro do ensino de Java no Rio de Janeiro, ministrando curso desta tecnologia antes mesmo da Sun. Formao Desenvolvedor Java
%#digo Fome do curso 4rojeto de Sistemas e Orientao a Objetos com ?AQ I000 :nsinar conceitos de orientao a objetos e sua utili.ao no processo de desen(ol(imento de soft&are usando ?AQ. *0 " Horas
Ma(a 4rogramming I002 :nsinar a programar em Ma(a para alunos 'ue j7 sabem programar em 'ual'uer outra linguagem. *B "
Ma(a Peb Applications I00* :nsinar 'uest9es a(anadas do desen(ol(imento de aplica9es Peb com a linguagem de programao Ma(a e os frame&orTs mais usados no mercado. *B "
>E
I002
*B "
I00*
*B "
I006
*B "
I00B
2* "
I060
32 "
I062
32 "
>2
4erguntas
>3
O*23456O 7
>*
%ontatos
www.infnet.edu.br cursos8infnet.edu.br
%"%%199::
Esta palestra est dispon(el em;
"ttp8NN&&&.infnet.edu.brNHomeN:(entosN%iclode4alestraseAini%ursosN:(entosem5INtabidN20>N1efault.asp<
>0