O documento descreve os principais conceitos da programação orientada a objetos (POO), incluindo: (1) POO é um paradigma que usa objetos compostos por campos e métodos para projetar programas; (2) Classes definem estruturas abstratas para objetos com características similares; (3) Métodos determinam o comportamento dos objetos de uma classe.
7. Programação
Orientada a Objetos?
EXISTEM
OUTRAS
E muito mais... Orientada a Teste, Escalar, Restritiva, Genérica....
Lógico
Prolog – Popler - QLISP
Imperativo/Procedural
Pascal – Fortran -
Basic
Funcional/Descritiva
ML – F# - Haskell
8. Programação
Orientada a Objetos?
•
Mais
fácil
descrever
o
mundo
real
através
dos
objetos
•
O
encapsulamento
facilita
a
manutenção
do
código
•
Maior
facilidade
para
reuKlização
de
código
•
Complexidade
no
aprendizado
em
comparação
com
a
programação
estruturada
•
Seus
conceitos
são
de
diOcil
compreensão
9. Programação
Orientada a Objetos?
RESUMO
POO
é
um
paradigma
de
programação
que
usa
"objetos"
compostos
por
campos
e
métodos,
justamente
com
suas
interações
-‐
para
projetar
programas
de
computadores.
h"p://en.wikipedia.org/wiki/Object-‐oriented_programming
POO
é
uma
forma
especial
de
programar,
mais
próximo
de
como
expressaríamos
as
coisas
na
vida
real
do
que
outros
Vpos
de
programação.
h"p://www.criarweb.com/ar:gos/215.php
POO
é
organizar
o
mundo
real
como
uma
coleção
de
objetos
que
incorporam
estrutura
de
dados
e
um
conjunto
de
operações
que
manipulam
estes
dados
e
trocam
mensagens
entre
si.
h"p://www.macora?.net/oo_conc2.htm
10. CLASSE
Uma
classe
é
uma
estrutura
que
abstrai
um
conjunto
de
objetos
com
caracterísVcas
similares.
É
como
um
projeto,
a
parVr
dela
que
criamos
os
objetos
uVlizados
em
nossos
programas.
h"p://en.wikipedia.org/wiki/Object-‐oriented_programming
11. Classe:
Atributos
Os
Atributos
em
Programação
Orientada
a
Objetos
são
os
elementos
que
definem
a
estrutura
de
uma
classe,
ou
seja
suas
caracterísVcas.
h"p://en.wikipedia.org/wiki/Object-‐oriented_programming
12. Classe:
Construtores
Um
construtor
é
uma
estrutura
especial
da
classe,
um
método,
que
tem
como
objeVvo
definir
a
configuração
inicial
de
uma
classe.
É
uVlizado
quando
existem
atributos
da
classe
que
são
essenciais
para
o
funcionamento
do
objeto,
porém,
são
atributos
de
instância,
e,
assim,
variam
de
acordo
com
cada
objeto.
h"p://www.webartz.com.br/php/php-‐orientado-‐a-‐objetos-‐conceitos-‐construtores-‐
e-‐destrutores
13. Classe:
Destrutores
Semelhante
aos
construtores,
o
destrutor
também
é
uma
estrutura,
outro
método,
da
classe,
porém
este
é
responsável
por
limpar
a
memória
ou
atributos
uVlizados
na
execução
da
classe.
h"p://www.webartz.com.br/php/php-‐orientado-‐a-‐objetos-‐conceitos-‐construtores-‐
e-‐destrutores
14. Classe:
Visibilidade
Quem
tem
acesso
à
classe
tem
acesso
também
a
qualquer
membro
com
visibilidade
public,
é
raro
ter
atributos
públicos,
mas
é
comum
ter
métodos
públicos.
h"p://www.dsc.ufcg.edu.br/~jacques/cursos/p2/html/oo/visibilidade.htm
+
Public
O
membro
private
não
é
acessível
fora
da
classe,
a
intenção
é
que
apenas
quem
escreve
a
classe
possa
usar
esses
membros.
h"p://www.dsc.ufcg.edu.br/~jacques/cursos/p2/html/oo/visibilidade.htm
-‐
Private
O
membro
protected
é
acessível
à
classe
e
a
suas
subclasses,
a
intenção
é
dar
acesso
aos
programadores
que
estenderão
sua
classe.
h"p://www.dsc.ufcg.edu.br/~jacques/cursos/p2/html/oo/visibilidade.htm
#
Protected
15. Classe:
Objeto
Objetos
são
instâncias
de
classes.
É
através
deles
que
(praVcamente)
todo
o
processamento
ocorre
em
sistemas
implementados
com
linguagens
de
programação
orientadas
a
objetos.
Programação
orientada
a
objetos
uma
abordagem
com
Java.
No
paradigma
de
orientação
a
objetos,
tudo
pode
ser
potencialmente
representado
como
um
objeto.
Sob
o
ponto
de
vista
da
programação
orientada
a
objetos,
um
objeto
não
é
muito
diferente
de
uma
variável
normal.
Programação
orientada
a
objetos
uma
abordagem
com
Java.
16. MÉTODO
Um
método
é
uma
subroVna
que
é
executada
por
um
objeto
ao
receber
uma
mensagem.
Os
métodos
determinam
o
comportamento
dos
objetos
de
uma
classe.
h"p://en.wikipedia.org/wiki/Object-‐oriented_programming
17. Método:
Assinatura
Cada
método
é
especificado
por
uma
assinatura,
composta
por
um
idenVficador
para
o
método
(o
nome
do
método),
o
Vpo
para
o
valor
de
retorno
e
sua
lista
de
argumentos,
sendo
cada
argumento
idenVficado
por
seu
Vpo
e
nome.
Programação
orientada
a
objetos
uma
abordagem
com
Java.
[modificador]
Kpo
nome
(argumentos)
{
corpo
do
método
}
Através
do
mecanismo
de
sobrecarga
(overloading),
dois
métodos
de
uma
classe
podem
ter
o
mesmo
nome,
desde
que
suas
assinaturas
de
argumentos
sejam
diferentes.
Programação
orientada
a
objetos
uma
abordagem
com
Java.
18. Método:
Sobrecarga
São
métodos
que
tem
o
mesmo
nome,
mas
com
argumentos
diferentes.
h"p://www.devmedia.com.br/post-‐5124-‐Orientacao-‐a-‐objetos-‐parte-‐ll.html
Lista de Argumentos diferentes
Podem alterar o tipo de retorno
Podem alterar o modificador de acesso
Declarar exceções novas ou mais abrangentes
CaracterísVcas
19. Método:
Mensagens
Um
programa
orientado
a
objetos
é
composto
por
um
conjunto
de
objetos
que
interagem
através
de
“trocas
de
mensagens”.
Na
práVca,
essa
troca
de
mensagem
traduz-‐se
na
aplicação
de
métodos
a
objetos.
Programação
orientada
a
objetos
uma
abordagem
com
Java.
20. Método:
Estáticos
Usualmente,
métodos
definidos
em
uma
classe
são
aplicados
a
objetos
daquela
classe.
Há
no
entanto
situações
nas
quais
um
método
pode
fazer
uso
dos
recursos
de
uma
classe
para
realizar
sua
tarefa
sem
necessariamente
estar
associado
a
um
objeto
individualmente.
Programação
orientada
a
objetos
uma
abordagem
com
Java.
Para
lidar
com
tais
situações,
define
os
métodos
da
classe,
cuja
declaração
deve
conter
o
modificador
sta$c.
Um
método
estáVco
pode
ser
aplicado
à
classe
e
não
necessariamente
a
um
objeto.
Programação
orientada
a
objetos
uma
abordagem
com
Java.
21. HERANÇA
Herança
é
um
mecanismo
que
permite
que
caracterísVcas
comuns
a
diversas
classes
sejam
fatoradas
em
uma
classe
base,
ou
superclasse.
A
parVr
de
uma
classe
base,
outras
classes
podem
ser
especificadas.
Programação
orientada
a
objetos
uma
abordagem
com
Java.
22. Herança:
Sobreposição
A
sobreposição
refere-‐se
à
redefinição
de
métodos
na
hierarquia
da
herança,
de
forma
que
estes
métodos
implementam
definições
diferentes
(mais
especializadas)
nos
subVpos.
h"p://arquiteturaemobilidade.blogspot.com/2008/07/conceitos-‐da-‐orientao-‐objetos-‐
com-‐uml_08.html
23. ENCAPSULAMENTO
É
o
princípio
pelo
qual
cada
componente
de
um
programa
deve
agregar
toda
a
informação
relevante
para
sua
manipulação
como
uma
unidade
(uma
cápsula).
Aliado
ao
conceito
de
ocultamento
de
informação.
Programação
orientada
a
objetos
uma
abordagem
com
Java.
24. ABSTRAÇÃO
Abstração
é
o
processo
de
extrair
as
caracterísVcas
essenciais
de
um
objeto
real.
A
abstração
é
necessária
para
se
ter
um
modelo
fiel
da
realidade
sobre
a
qual
se
possa
operar.
h"p://www.slideshare.net/danielrpgj30/curso-‐de-‐programao-‐orientada-‐a-‐objetos
O
conjunto
de
caracterísVcas
resultante
da
abstração
forma
um
Vpo
de
dado
abstrato
com
informações
sobre
seu
estado
e
comportamento.
h"p://www.slideshare.net/danielrpgj30/curso-‐de-‐programao-‐orientada-‐a-‐objetos
25. POLIMORFISMO
O
polimorfismo
permite
que
referências
de
Vpos
de
classes
mais
abstratas
representem
o
comportamento
das
classes
concretas
que
referenciam.
Assim,
um
mesmo
método
pode
apresentar
várias
formas,
de
acordo
com
o
seu
contexto.
h"p://www.slideshare.net/danielrpgj30/curso-‐de-‐programao-‐orientada-‐a-‐objetos
26. INTERFACE
É
um
conjunto
de
métodos
que
um
objeto
deve
suportar,
mas
contendo
apenas
a
especificação
da
funcionalidade
que
uma
classe
deve
conter,
sem
determinar
como
essa
funcionalidade
deve
ser
implementadas.
Programação
orientada
a
objetos
uma
abordagem
com
Java.
27. COESÃO / ACOPLAMENTO
Acoplamento
é
o
grau
que
uma
classe
depende,
interage
com
outra
classe.
Coesão
refere
a
finalidade
que
a
classe
foi
criada.
h"p://www.devmedia.com.br/post-‐5124-‐Orientacao-‐a-‐objetos-‐parte-‐ll.html
Quanto
menos
uma
classe
depende
da
outra,
menor
o
acoplamento,
e
maior
a
especialização
dela,
isso
significa
alta
coesão.
h"p://www.devmedia.com.br/post-‐5124-‐Orientacao-‐a-‐objetos-‐parte-‐ll.html