Buscar

Programação Orientada a Objetos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 36 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 36 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 36 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

PROGRAMAÇÃO 
ORIENTADA A OBJETOS
Professor: Cristiano de Macêdo Neto
E-mail: cristiano.neto@prof.una.br
Apresentação do Professor
Cristiano de Macêdo Neto
cristiano.neto@prof.una.br
• Formação...
• Áreas de Interesse...
2
• Áreas de Interesse...
• Experiência profissional...
Plano de Ensino
Ementa
• Orientação à objeto: conceitos de orientação a objetos, polimorfismo, abstrações, 
generalização; 
• Objetos e Classes; 
• Ocultação de Informação; 
• Membros Estáticos; 
• Tratamento de Exceção; 
• Herança de Classe; • Herança de Classe; 
• Membros Protegidos e Construtores nas Classes Derivadas; 
• Atributos, Métodos e Classes final; 
• A classe Object; 
• Clonando Objetos; 
• Herança e Polimorfismo; 
• Função Polimórfica; 
• Classes abstratas; 
• Interfaces; 
• Programação de interfaces gráficas; 
• Programação Orientada a Eventos..
Plano de Ensino
Objetivo Geral
Capacitar o aluno a utilizar as principais técnicas da programação 
orientada a objetos..
Objetivos EspecíficosObjetivos Específicos
Apresentar ao aluno as principais técnicas da programação orientada 
a objeto, dentre elas os conceitos de classes, objetos, 
encapsulamento, sobrecarga, reusabilidade, extensibilidade, herança 
e polimorfismo, dentre outros; Capacitar o aluno a programar 
utilizando uma linguagem orientada a objeto.
Plano de Ensino
Programa
1 - Introdução à Programação Orientada a Objetos
2 - Classes e Objetos2 - Classes e Objetos
3 - Construtores e finalizadores
4 - Herança
5 - Relacionamentos entre classes
6 - Polimorfismo
7 - Tratamento de exceções
8 - Persistência de dados e de objetos.
Plano de Ensino
Avaliações
P1 (Avaliação 1) 30 pontos
09/10/2013 – Avaliação teórica individual e sem consulta
T1 (Trabalho 1) 20 pontos
Trabalhos práticos a serem marcadas ao longo do semestre.Trabalhos práticos a serem marcadas ao longo do semestre.
P2 (Avaliação 2) 30 pontos
Avaliação Colegiada a ser marcada pela UNA
TDC1 (Trabalho 2 - TIDIR) 10 pontos
TDC2 (Trabalho 3 - TIDIR) 10 pontos
PA (Prova Alternativa) 30 pontos 
Plano de Ensino
Bibliografia Básica
MENDES, Douglas Rocha. . Programação Java: com ênfase em 
orientação a objetos. São Paulo: Novatec, 2009.
Goodrich, M.T; Tamassia, R. Estruturas de Dados e Algoritmos em 
Java. Porto Alegre, Bookman, 2002, 584p.Java. Porto Alegre, Bookman, 2002, 584p.
Deitel,H.M; Deitel,P.J. Java Como Programar. Porto Alegre, Bookman, 
2001, .
Plano de Ensino
Bibliografia Complementar
Barnes ,David J. ; Kolling, Michael . Programação Orientada a 
Objetos com JAVA
JAMSA, Kris; SANTOS, Jeremias Renê D. Pereira dos; KLANDER, 
Iars (Org.). Programando em C/C++: a bíblia. São Paulo: Makron 
Books, 1999.Books, 1999.
ANSELMO, Fernando .Aplicando Lógica Orientada a Objetos em 
JAVA. Visual Books 2005
CAMARA, Fabio. Orientação a Objeto com .NET. São Paulo: Visual 
Books, 2008.
SANTOS, Rafael . Introdução à Programação Orientada a Objetos 
Usando JAVA CAMPUS 2003
.
.
Nossos melhores 
companheiros
E muitos outros...
O que nos espera?
Perguntas Importantes
• Programação Orientada a 
Objetos
– Por que?
– O que é?– O que é?
– Exemplo...
– Quais os conceitos básicos?
POO
• Por que?
– O que levou a área de programação buscar a 
mudança do paradigma estruturado para um 
novo?
• Complexidade crescente dos sistemas • Complexidade crescente dos sistemas 
• Limitações da capacidade de compreensão de um 
sistema como um todo.
• Sistema complexo 
– Conjunto grande e diverso de comportamentos tendo um 
longo ciclo de vida e muitos usuários dependendo dele.
• A complexidade está na quantidade e diversidade
Perguntas Importantes
• Programação Orientada a 
Objetos
– Por que?
– O que é?– O que é?
– Exemplo...
– Quais os conceitos básicos?
POO
• O que é?
– O mundo real
• Tudo é considerado objeto!
• Os objetos se relacionam entre si de diversas maneiras
– A POO– A POO
• Um programa orientado a objetos é estruturado como 
uma comunidade de agentes que interagem entre si, 
denominados objetos.
– Cada objeto tem um papel a cumprir
– Cada objeto oferece um serviço ou realiza uma ação que é 
usada por outros membros da comunidade
POO
Perguntas Importantes
• Programação Orientada a 
Objetos
– Por que?
– O que é?– O que é?
– Exemplo...
– Quais os conceitos básicos?
POO
• Um Computador
– Composto por vários componentes:
• placa-mãe
• CPU
• placa de vídeo
• disco rígido
• teclado, etc.• teclado, etc.
• Cada componente é bastante sofisticado, mas o usuário não precisa 
saber como funciona internamente.
• Cada componente é independente dos demais.
• Para quem está montando, interessa apenas como os componentes 
interagem entre si:
– a placa de vídeo encaixa no slot ?
– O monitor funciona com essa placa ?
– A CPU é compatível com a placa-mãe ?
Perguntas Importantes
• Programação Orientada a 
Objetos
– Por que?
– O que é?– O que é?
– Exemplo...
– Quais os conceitos básicos?
POO
• Objeto
– Se refere a uma instância de uma classe.
– Passa a existir a partir de um "molde" (classe) que 
define o seu comportamentodefine o seu comportamento
– É composto por atributos (propriedades) e 
métodos (ações).
Operações / métodos / Interface
(público)
Dados / Propriedades / Atributos
(privado)
Ideal
POO
• Objeto – Exemplo – Lâmpada 
OperaçõesOperações
• Ligar / Desligar
Atributos
• ligada (s / n)
• potência
• voltagem
POO
• A orientação a objeto traz em sua essência 
algumas características. São elas:
– Abstração;
– Encapsulamento;
Orientação a 
Objetos– Encapsulamento;
– Herança;
– Polimorfismo;
– Visibilidade.
Objetos
E
n
c
a
p
s
u
l
a
m
e
n
t
o
H
e
r
a
n
ç
a
P
o
l
i
m
o
r
f
i
s
m
o
A
b
s
t
r
a
ç
ã
o
POO
• Abstração
– É a habilidade de concentrar nos aspectos essenciais 
de um contexto qualquer, ignorando características 
menos importantes ou acidentais;
– Em modelagem orientada a objetos, uma classe é uma – Em modelagem orientada a objetos, uma classe é uma 
abstração de entidades existentes no domínio do 
sistema de software;
Por exemplo, em um contexto 
podemos abstrair que um nome, 
um cpf, um endereço, são todos 
características da classe pessoa.
POO
• Encapsulamento
– Técnica para minimizar as interdependências entre 
módulos, através da definição de interfaces 
externas.externas.
– “Caixa preta” - não é necessário saber como 
funciona internamente, mas sim como utilizar.
Por Exemplo, você não precisa conhecer os 
detalhes dos circuitos de um telefone para 
utilizá-lo. A carcaça do telefone encapsula esses 
detalhes, provendo a você uma interface mais 
amigável (os botões, o monofone e os sinais de 
tom).
POO
• Encapsulamento
A interface (pública) de um
objeto declara todas as
operações permitidas
(métodos)(métodos)
Todo o acesso aos dados é feito
através da chamada a um método
definido pelo objeto
Mudanças na implementação interna do objeto (que preservem a 
interface externa) não afetam o resto do sistema
POO
• Herança
– É o mecanismo pelo qual uma classe (sub-classe) pode 
estender outra classe (super-classe), aproveitando 
seus comportamentos (métodos) e estados possíveis 
(atributos);
– Existe herança múltipla quando uma sub-classe possui – Existe herança múltipla quando uma sub-classe possui 
mais de uma super-classe.
Pessoa
PessoaFisicaPessoaJuridica Profissional
POO
• Polimorfismo
– Permite que uma referência de um tipo de uma 
super-classe tenha seu comportamento alterado 
de acordo com a instância da classe filha a ela de acordocom a instância da classe filha a ela 
associada;
– Permite a criação de super-classes abstratas, ou 
seja, com métodos definidos (declarados) e não 
implementados, onde a implementação ocorre 
somente nas sub-classes não abstratas.
POO
• Polimorfismo
Funcionario
- id: Long
- nome: String
- salario: BigDecimal
+ calcularSalario() : BigDecimal
Gerente
- gratificacao: BigDecimal
+ calcularSalario() : BigDecimal
Vendedor
- comissao: BigDecimal
+ calcularSalario() : BigDecimal
Administrativo
POO
• Visibilidade
– Indica o nível de acessibilidade de um atributo ou método;
– Basicamente existem 4 modos de visibilidade:
• Público (+ ou public):
– O atributo ou método pode ser utilizado por objetos de qualquer classe;
• Protegido (# ou protected):
– O atributo ou método pode ser utilizado apenas por objetos da classe possuidora ou de – O atributo ou método pode ser utilizado apenas por objetos da classe possuidora ou de 
suas sub-classes;
• Privado (- ou private);
– O atributo ou método pode ser utilizado apenas por objetos da classe possuidora;
• Pacote (~ ou package);
– Todas as classes do mesmo pacote da classe possuidora podem acessar seus atributos ou 
métodos.
POO
• Mensagens
– É a forma como os objetos interagem entre si.
– Para invocar um método, deve-se enviar uma 
mensagem para o objeto desejado mensagem para o objeto desejado 
• identificar o objeto que receberá a mensagem
• identificar o método que o objeto deverá executar
• passar os argumentos requeridos pelo método
POO
• Classes
– É a abstração de um grupo de objetos, focalizando 
no essencial do contexto a ser implementando, 
ignorando propriedades acidentaisignorando propriedades acidentais
– Determina um conjunto de objetos com:
• propriedades semelhantes
• comportamentos semelhantes
• relacionamentos comuns com outros objetos
POO
Objetos versus Classe
POO
• Objetos versus Classe
POO
• Convenções para nomenclatura de classes, 
métodos e atributos
– O nome da classe deve iniciar sempre com letra 
maiúscula. 
– Deve-se evitar o uso dos caracteres de "_" – Deve-se evitar o uso dos caracteres de "_" 
(sublinhado) e "-" (hifen) entre palavras:
• Por exemplo, para a classe Folha de Pagamento, usa-se 
FolhaDePagamento ou FolhaPagamento, mas não Folha-
Pagamento ou Folha_Pagamento.
– Métodos e atributos devem começar com caracteres 
minúsculos.
POO
POO
Atributos / Dados
Métodos / Operações
Visibilidade
Encapsulamento
POO
• Algumas linguagem OO
– C++
– C#
– Object Pascal– Object Pascal
– Java
– PHP
– Python
– Ruby
– Smalltalk

Outros materiais