POO Aula 01 PDF
POO Aula 01 PDF
POO Aula 01 PDF
Objetos
• Metodologias da OO
• Orientação a Objetos
• Classes
• Programação funcional
• Lisp
• Programação Orientado a aspecto
• Java(AspectJ)
• Reuso de código
• Encapsulamento
• Acoplamento
• Projeto:
• Planejar como será feito.
• Implementação:
• Colocar a mão na massa.
•Facilidade de manutenção.
•Reusabilidade.
•Simplicidade.
•Agilidade.
• Métodos - “Comportamentos”
• Construtores - Criar um objeto
quarta-feira, 2 de maio de 2012
Exemplo de Objetos
• Objetos: Mesa, Cadeira, Pessoa, Carro,
Conta bancaria, Clima
• E os traços??
• Como classificar objetos:
• Objetos com os mesmo traços
recebem a mesma classificação.
• Poderosa
• Abrangente
• Híbrida - Compilada / Interpretada
• Funciona em qualquer equipamento - Máquinas
virtuais
• Ciclo de funcionamento:
• código fonte --> compilador --> bytecode(saída)
--> execução(máquina virtual)
1996 1997
1998,2000,2002 2004
250 classes 500 classes 2.300 classes
3.500 classes
Lenta. Um pouco ma is rápida. MUito mais rápida.
Mais recursos, mais fácil de
Java 6 - 2006
Nome e logotipo Mais recursos , mais Po de (em al gumas situações) desenvolver.
in teressante s. amigável. Começando a ser exec ut ada e m velocidades
Divertida de u sar . se tornar muito condi zentes . Pro fi ssion al, Além d e ad ici ona r mais de n;lil
Muito s erros . Os
applets são o
destaque.
Java 7 - 2011
popular. Código de GUI
mais adequado .
poderosa. Vem e m três
versões: Micro Edition
(J2ME), Standard Edit ion
clas s es comp l ement ares, a Java
5. O (conhecida como "Tiger'j )
acre s cento u alterações
( quarta-feira,
( ( (' 2( de( maio
( de( 2012
( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (' ( ( ( ( \ ( ;
Problemática
• Era uma vez em uma loja de softwares,
dois programadores que receberam as
mesmas especificações e a ordem
"construam". O Gerente de Projetos Muito
Chato forçou os dois codificadores a
competirem, prometendo que quem acabasse
primeiro ganharia uma daquelas modernas
cadeiras AeronTM que todo mundo no Vale
de Santa Clara tem.
te
t
m.
da
r?
".
m
• rotate(shapeNum)
{ faz a forma girar 360' }
Square
11
;1 . J
ro·ta t e 11
II có Circle
-1
} I; '"'-I
rotate ( I
playSo1.; /I có Triangle
IJ
II có }
o II de r ota te () {
} playSou II código pa ra gira r um triângul o
/I có }
II de
p laySound () {
li
}
fi código pa ra rep ro duzi r o arquivo AIF
!I
I / de um triângulo
}
_. _J
quarta-feira, 2 de maio de 2012
fi código pa ra rep ro duzi r o arquivo AIF
!I
I / de um triângulo
Alteração na _. especificação
_J
}
e eba na
d U\:n a am
ixo , formatO e f :nas.
Havera o as outras on · ba ela
. to CO\:n , . a ame '
tela, .lun uár'o ClICar n _e
Quando o us s outras formas bif
, O\:nO a . de SO\:n .
<Tirara c , .,... arquIVO '
temos t;>
repro
d\rz.i.ra UI"
á
rry,
o. "E
da
e
.
o que foi adicionado às especificações
va
Usando o laptop de Brad na praia
Brad
Brad sorriu, tomou um gole de sua marguerita e criou uma
um nova classe . Às vezes o que ele mai s adorava na 00 era não
ser preciso mexer em código que já tivesse sido testado e
• Brad criou
distribuído. apenas extensibilidade
"Flexibilidade, mais uma ...classe para
" ele pensou,
representar
refletindo sobre osabenefícios
Amoeba da 00.
Amoeba II
rotate ()
II c ó digo pa ra girar a ameba
I;
playSound ( )
s 1/ código para repr odu z ir o n ovo
I I a rqui vo .hif de uma a me ba
e de
as.
Brad.
quarta-feira, 2 de maio de 2012
de um ponto em uma extremidade, como um ponteiro de relógio .
m Wonderbread™ chamuscado. "Porém, hmmm. Eu poderia apenas
Nova Mudança
mento de rotação e, em seguida, embutir o código do ponto de
atrapalhará nada." Mas uma voz longínqua em sua mente dizia:
te que as especificações não mudarão novamente?"
ba na versa
da ame
de rotaçao
ponto d'
de Larry e Bra .
da ameba
de rotaçao o que as
Onde o O especificações
' a estar. esqueceram de
deve(1 mencionar
adequadamente
Amoeba
in t x point;
int y point;
rotate() (
iJ
II c ó dig o para girar a ameba
/ 1 usa n do os pontos x e y
playSound()
II código para reproduzir o novo
1/ a rqui vo .hi f d e uma ameba
adeira, certo?
quarta-feira, 2 de maio de 2012
Mas então quem
ganhou a cadeira?
Square Square
.___1
"J Métodos de
sobreposição
Subclasses
---I da ameba
playSound ( )
(mais específicas) Il código de
reprodução
de som Subclasses
.___1
Ilespecífico • (mais específicas)
da ameba
o você "diria" a um objeto Amoeba para fazer algo? Não é preciso chamar o procedimento,
- I
étodo, e, em seguida, lhe informar que item girar?
quarta-feira, 2 de maio de 2012
"J
ódigo do programa referenciará (chamará) o método rotate( ) no objeto Triangle. O resto do programa não
aberá ou se importará realmente em como o tliângulo o fará. E quando você precisar adicionar algo novo
o programa, apenas criará uma nova classe para o novo tipo de objeto, para que os novos objetos tenham
eu próprio comportamento.
o
O
carrinhoCompras Botão
Atividade
Preencha com o que um objeto televisão
pode ter que saber e fazer.
li
Televisão
variáveis de
li instância (estado)
métodos
(comportamento)
I!
quarta-feira, 2 de maio de 2012
Interface
boolean ligar();
boolean desligar();
}
public class Carro implements Veiculo{
• public boolean ligar()
{...}
• boolean ligar();
• boolean desligar();
• boolean andar();
• boolean parar();