Orientação
a
Objetos
this.tópicos
Orientação a Objetos
Noção Histórica
Paradigma Estruturado x
Orientado a Objetos
Abstração
Objeto
Classe
this.contexto
1960 - 1970
Império do Paradigma Estruturado
Grandes investimentos em hardware
Poucas estratégias para construção
de softwares
1960 - 1970
Orçamento
Prazo Manutenção
Qualidade
Gerência
Requisitos
1960 - 1970
Elaboração de técnicas de
engenharia de software
Orientação a Objetos
Novas técnicas de gerência
1971 - 1975
SmallTalk
Alan Curtis Kay
XEROX PARC
Samalltalk-72
Logo, Lisp e Simula-67
1975 - 1980
SmallTalk
Revisão e ampliação
Criação de VMs:
HP, DEC, Apple, IBM…
this.comparações
Estruturado
Dados Comportamento
Entrada Saída
Programa
Dados
Estruturado
Escrita de Bibliotecas
Modularização
Estruturas de Dados
Estruturado
Depuração
Procedimentos bem
definidos
Criação de Tipos de
Dados
Estruturado
Escalabilidade
Reutilização de Código
Encapsulamento
Extensibilidade
Orientado a Objetos
Abstração
Reutilização
Crise do Software
Modularização
Entrada Saída
Programa
Orientado a Objetos
ReutilizávelManutenível
Natural
Confiável
Extensível
Oportuno
Orientado a Objetos
“Programação egoísta”
POO é linguagem
Medo de reutilizar
OO é solução para tudo
this.abstração
Problema Análise Características Solução
Abstração
Alice
nome
notas
frequência
tamanho do pé
tipo de sangue
peso
altura
média final
medida cintura
cor do cabelo[estudante]
Simplicidade
Construção de Modelos
Operações
Classificação
Decomposição
Generalização Associação
Instanciação
Composição
Classificação
portas
estacionarodas
ar-condicionado
motor
câmbio
placas
locomove
volante
≠
Classificação
Estabelecimento de categorias
de objetos com base em suas
características comuns.
Origina classes
Instanciação Honda civic
preto da Carol
Crossfox
laranja do
Thiago
Hillux prata do
Franzé
Generalização
Generalização
médicos enfermeiros
Generalização
nome
endereço
telefone
salário
CRM
especialidade
consultas
nome
endereço
telefone
salário
CRE
médico enfermeiros
Generalização
CRM
especialidade
consultas
CRE
médico enfermeiros
nome
endereço
telefone
salário
funcionário
CRM
especialidade
consultas CRE
médico
enfermeiros
nome
endereço
telefone
salário
funcionário
Generalização
Extração de características
comuns a um conjunto de
classes para criar um
classe mais genérica.
Generalização
Relação “é um tipo de…”
O médico é um tipo de
funcionário.
O ônibus é um veículo.
Generalização
Responsável pelo
estabelecimento de
herança entre os objetos.
O médico possui um nome.
O enfermeiro possui um
telefone.
CRM
especialidade
consultas CRE
médico
enfermeiros
nome
endereço
telefone
salário
funcionário
Especialização
Processo de identificação
de características que
especializam uma classe
mais geral.
“inverso” da
generalização.
Composição
bateria
auto-falantes
sensores
tela
câmera
botões
Composição
Objetos complexos são
difíceis de criar, gerenciar e
manter.
Reutilização!
Composição
Operação que permite a
união de vários objetos
para compor um outro
agregação
associação
Agregação
motor
roda
farol
retrovisor
câmbio
porta
todo partes
Agregação
Caracterizado pela relação
“tem um”
Um carro tem um motor.
Um médico tem um nome.
Agregação
Forte
A existência do todo não faz
sentido sem as partes.
nome, idade, sexo de uma
pessoa.
Associação
editora escritor
contratar
Associação
editora escritor
contratar
Associação
editora
contratar
escritor
Associação
editora escritor
contratar
escritor
contratar
Associação
editora
Associação
As partes e o todo existem
independentemente.
produto e vendedor em uma
mercantil.
Fraco
Decomposição
hard drive
teclado
mouse
monitor
cpu
placa de vídeo
Decomposição
Processo de identificação
de entidades-todo de um
objeto complexo.
this.objeto
atributos
métodos
estado interno
comportamento
Objeto
atributos
métodos
Objeto
base do software
cumprem requisições
mensagens
requisição -> método
relacionamentos
variáveis
Atributo
inacessíveis
diretamente
característica
comportamento
Método
invocado por
mensagens
alteram ou não os
valores dos atributos
número de olhos número de pés
número de dentes cor da pele
correr morder
piscar gritar
atirar gosma pular
representam
operações de
abstração
Relacionamentos
Mensagens
Meio usado para os objetos
se comunicarem.
Mensagens
Para cada mensagem
enviada, deve haver uma
resposta.
Mensagens
Representam
“requisições"de serviços.
video
player
file
manager
open “mVideo.avi”
video
player
file
manager
objeto videoFile
requisição
argumentos
mensagem
emissor
receptor
professor.lecione()
cachorro.latir()
calculadora.divida(4, 2)
this.classe
Veículo
rodas
velocidade
máxima
assentos
locomover
farol
buzinaconsumo
acelerar
trocar marcha
frenar
estacionar
abastecer
Abstração das
características
comuns de um
tipo de objetos
Classe
atributos
comportamentos
+
Classe
classe objeto
this.protocolos
this.exercícios

Java aula 02