Escolar Documentos
Profissional Documentos
Cultura Documentos
Orientação A Objetos Na Prática
Orientação A Objetos Na Prática
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 Kay, um dos pais do paradigma da orientao a objetos, formulou a chamada analogia biolgica. Como seria um sistema de software que funcionasse como um ser vivo?
Analogia Biolgica
Cada clula interagiria com outras clulas atravs do envio de mensagens para realizar um objetivo comum. Adicionalmente, cada clula se comportaria como uma unidade autnoma.
Analogia Biolgica
De uma forma mais geral, Kay pensou em como construir um sistema de software a partir de agentes autnomos que interagem entre si. Com isso, ele estabeleceu os princpios da orientao a objetos.
Tudo um objeto. Objeto = super varivel: armazena dados, mas se pode fazer requisies a esse objeto, pedindo que ele faa operaes sobre si prprio. Em teoria, qualquer elemento conceitual do problema pode ser representado como um objeto em um programa (Ex.: cachorros, livros, scios, emprstimos, etc) .
Um programa uma coleo de objetos dizendo uns aos outros o que fazer. Para fazer uma requisio a um objeto voc manda uma mensagem para este objeto. Mensagem = chamada de um procedimento ou funo pertencente a um objeto em particular.
Um objeto pode ser composto por vrios outros objetos Um novo tipo de objeto pode ser criado a partir de objetos existentes. Dessa forma, complexidade pode ser adicionada a um programa e escondida por trs da simplicidade de uso dos objetos.
Todo objeto tem um tipo. Objeto = instncia de uma classe, onde classe um sinnimo de tipo. A questo mais importante relativa a uma classe que mensagens eu posso enviar para uma instncia dessa classe?
Todos os objetos do mesmo tipo podem receber as mesmas mensagens. Na figura abaixo, o objeto Crculo aceita qualquer mensagem endereada a uma Forma Geomtrica. Essa capacidade de subtituio de um objeto por outro um dos mais poderosos conceitos em orientao a objetos. (Herana)
10
Abstrao
11
Objeto
Definio: Um conceito, com significado especfico em um contexto Propsito: Representar uma entidade do mundo real Objetos possuem: Identidade Caractersticas que determinam seu estado Comportamento especfico definido por um conjunto de aes
12
Exemplo
Beija-Flor Identidade:: o beija-flor que vem ao meu jardim Estado:
penas azuis bico fino vo rpido
Comportamento:
voar piar
13
Exemplo
Comportamento::
andar falar comer rir
14
Exemplo
Telefone Identidade:: nmero 2576-0989 Estado::
azul 2.4 GHz tone
Comportamento::
tocar discar
15
Objeto
Representao
Estado (caractersticas)
Identidade
Comportamento
16
Objeto
Interface da Classe
17
Encapsulamento
A interface de um objeto o que ele conhece e o que ele sabe fazer, sem descrever como o objeto conhece ou faz. A interface de um objeto define os servios que ele pode realizar (mensagens que ele recebe). Uma interface pode ter vrias formas de implementao.
18
Classe
fbrica de objetos.
19
Classe
Fbrica de Objetos.
Objetos: So instncias de alguma classe. De uma classe so idnticos em sua interface e implementao. Diferem-se de outros por seu estado e sua identidade.
20
21
Implementao em Java
22
Implementao em Java
23
Classes
Classe
Instncias (objetos)
24
Implementao em Java
25
Implementao em Java
26
Atributos
Descrevem as caractersticas das instncias de uma classe Seus valores definem o estado do objeto O estado de um objeto pode mudar ao longo de sua existncia A identidade de um objeto, contudo, nunca muda
Funcionrio_Helena Nome=Helena Reis Nasc=28/01/1965 Salrio = 4.000 InformarSalrio CalcularIdade Funcionrio_Mrio Nome=Mrio S Nasc=16/02/1970 Salrio = 3.000 InformarSalrio CalcularIdade
27
Servios/Operaes
Representam o comportamento das instncias de uma classe Correspondem s aes das instncias de uma classe
4000
Funcionrio_Helena Nome=Helena Reis Nasc=28/01/1965 Salrio = 4.000 InformarSalrio CalcularIdade Funcionrio_Mrio Nome=Mrio S Nasc=16/02/1970 Salrio = 3.000 InformarSalrio CalcularIdade
28
Implementao em Java
29
Servios/Mtodos
Alguns mtodos especiais: Construtores criam objetos de uma classe Destrutores destroem objetos de uma classe
30
31
32
Herana
Atravs da herana, novas classes podem ser derivadas das classes existentes.
A nova classe herda propriedades e mtodos da classe base. A nova classe tambm pode adicionar suas prprias propriedades e mtodos.
33
Herana
34
Herana
Suponha que a ClasseB herda da ClasseA
35
Herana
O objeto da classeB tem agora disponveis os mtodos da classe ClasseA, sem ter que reescrevlos na ClasseB. Um objeto da ClasseB tambm um objeto da classe ClasseA.
36
Herana
Facilita a manuteno do cdigo: Os mtodos no so replicados. Se for necessrio alterar o cdigo do mtodo m3(), basta alter-lo na ClasseA. A ClasseB pode "recusar" parte da herana, reimplementando os mtodos herdados, sobrescrevendo-os.
37
Herana
O mtodo m3(), agora disponvel para objetos da ClasseB, aquele implementado em ClasseB.
38
Herana
39
Herana
ERRADO!!!!
40
Herana
Herana
Pode surgir a partir da refatorao de classes existentes, de modo a eliminar a duplicao de cdigo
Herana
Refatorao
43
Composio
A classe contm referncias para objetos de outras classes: Estas referncias so tambm atributos da classe. Maneira alternativa de estender a funcionalidade de uma classe, agregando funcionalidades de outras classes. Herana UM x Composio x TEM UM
44
Composio
O mecanismo de herana nem sempre apropriado Estender funcionalidade atravs de herana pode no ser "natural": Uma conta de investimento uma conta bancria! Uma conta de investimento no uma Pessoa!
45
Composio
46
Composio
Utilizando uma conexo de ocorrncia, o modelo poderia ser melhorado da seguinte forma:
47
Polimorfismo
"Programao Genrica". Trata objetos na mesma hierarquia de classes como se todos fossem objetos da superclasse. Tornam o programa extensvel: Facilidade para adicionar novas classes.
48
Polimorfismo
Conceito Chave Objetos das subclasses podem ser tratados como objetos da superclasse
::Project2
A m1(...) m2(...)
A classe B UMA classe A Um objeto da classe B pode ser usado em qualquer lugar onde um objeto da classe A esperado.
B m1(...) m3(...)
49
Polimorfismo
Tabelas Virtuais
Classe A
::Project2
A m1(...) m2(...)
Classe B operao m1() m2() m3() mtodo invocado B.m1() A.m2() B.m3()
m1(...) m3(...)
50
Polimorfismo
::Unit1
JWindows
51
Polimorfismo
procedure TForm1.FormCreate(Sender: TObject); begin if SO='Windows' then jWin := JWindows.Create else jLin := JLinux.Create; end; procedure TForm1.WMSysCommand(var Message: TMessage); begin if (Message.wParam = SC_MINIMIZE) then if SO='Windows' then jWin.minimize else jLin.minimize else if (Message.wParam = SC_MAXIMIZE) then if SO='Windows' then jWin.maximize else jLin.maximize else if (Message.wParam = SC_CLOSE) then
52
Polimorfismo
Soluo Polimrfica
::Unit1
Janela close(...) maximize(...) minimize(...) move(...) open(...)
53
Polimorfismo
procedure TForm1.FormCreate(Sender: TObject); begin if SO='Windows' then jan := JWindows.Create else jan := JLinux.Create; end; procedure TForm1.WMSysCommand(var Message: TMessage); begin if (Message.wParam = SC_MINIMIZE) then jan.minimize else if (Message.wParam = SC_MAXIMIZE) then jan.maximize else if (Message.wParam = SC_CLOSE) then jan.close else if (Message.wParam = SC_MOVE) then jan.move else inherited; end;
54
Polimorfismo
Observe ainda como seria fcil acrescentar uma janela MOTIF para o Sun Solaris
Janela close(...) maximize(...) minimize(...) move(...) open(...)
::Unit1
55
Polimorfismo
procedure TForm1.FormCreate(Sender: TObject); begin if SO='Windows' then jan := JWindows.Create else if SO = 'Linux' then jan := JLinux.Create else jan := JSolaris.Create; end; procedure TForm1.WMSysCommand(var Message: TMessage); begin if (Message.wParam = SC_MINIMIZE) then jan.minimize else if (Message.wParam = SC_MAXIMIZE) then jan.maximize else if (Message.wParam = SC_CLOSE) then jan.close else if (Message.wParam = SC_MOVE) then jan.move else inherited; end;
56
57
58
Comportamento
59
Diagrama de Classes
Estrutura
60
Diagrama de Seqncia
Comportamento
61
Diagrama de Colaborao
Comportamento
62
Diagrama de Estados
Estrutura e Comportamento
63
Diagrama de Atividades
Comportamento
64
Diagrama de Componentes
Estrutura
65
Diagrama de Implantao
Estrutura
66
67
Diagrama de Atividades
Descreve processo de negcio e fluxo de trabalho; Suportam comportamento paralo (diferena para fluxograma); Semelhante Diagrama de Estados;
68
Diagrama de Atividades
M o s t r a q u e m f a z o q u
69
70
O Pioneirismo 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
Cdigo Nome do curso Projeto de Sistemas e Orientao a Objetos com UML I550 Ensinar conceitos de orientao a objetos e sua utilizao no processo de desenvolvimento de software usando UML. 40 h Horas
Java Programming I552 Ensinar a programar em Java para alunos que j sabem programar em qualquer outra linguagem. 48 h
Java Web Applications I554 Ensinar questes avanadas do desenvolvimento de aplicaes Web com a linguagem de programao Java e os frameworks mais usados no mercado. 48 h
71
I552
48 h
I554
48 h
I556
48 h
I558
24 h
I560
32 h
I562
32 h
72
Perguntas
73
OBRIGADO !
74
Contatos
www.infnet.edu.br cursos@infnet.edu.br
2122-8800
Esta palestra est disponvel em:
http://www.infnet.edu.br/Home/Eventos/CiclodePalestraseMiniCursos/EventosemTI/tabid/257/Default.aspx
75