professor: leandro luque. paradigma procedural dados procedimento 1 procedimento 2procedimento 3...

31
Paradigma Orientado a Objetos Professor: Leandro Luque

Upload: internet

Post on 18-Apr-2015

113 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Professor: Leandro Luque.  Paradigma procedural Dados Procedimento 1 Procedimento 2Procedimento 3 Quais são os procedimentos/funções necessários para

Paradigma Orientado a Objetos

Professor: Leandro Luque

Page 2: Professor: Leandro Luque.  Paradigma procedural Dados Procedimento 1 Procedimento 2Procedimento 3 Quais são os procedimentos/funções necessários para

Como pensamos?

Paradigma procedural

Dados

Procedimento 1 Procedimento 2

Procedimento 3

Quais são os procedimentos/funções necessários para resolver o problema?Quais são os dados necessários para resolver o problema?

Programas modularizados em procedimentos e funções

Page 3: Professor: Leandro Luque.  Paradigma procedural Dados Procedimento 1 Procedimento 2Procedimento 3 Quais são os procedimentos/funções necessários para

Como pensamos?Exemplo Cálculo de média de alunos

Notas

Ler notas doaluno

Calcular média

Exibir média doaluno

program media;uses wincrt;

var notas: Array[1..4] of real; media: real;

procedure lerNotas();var cont: integer;begin for cont:=1 to 4 do begin write(‘Nota ', cont, ': '); readln(notas[cont]); end;end;

procedure calcularMedia();var contador: integer;begin media := 0; for contador:=1 to 4 do begin media := media + notas[contador] end; media := media / 4; end;

procedure exibirMedia();begin writeln('A média do aluno é ', media);end;

begin lerNotas(); calcularMedia(); exibirMedia();end.

Page 4: Professor: Leandro Luque.  Paradigma procedural Dados Procedimento 1 Procedimento 2Procedimento 3 Quais são os procedimentos/funções necessários para

Mudando de ParadigmaProblema

SoluçãoSolução

Page 5: Professor: Leandro Luque.  Paradigma procedural Dados Procedimento 1 Procedimento 2Procedimento 3 Quais são os procedimentos/funções necessários para

Perspectivas de Estudo do Paradigma Orientado a Objetos (OO)

História/evolução dos conceitos; Análise isolada dos conceitos; Comparação com o paradigma

procedural;

Page 6: Professor: Leandro Luque.  Paradigma procedural Dados Procedimento 1 Procedimento 2Procedimento 3 Quais são os procedimentos/funções necessários para

História do Paradigma Orientado a Objetos e seus conceitos

Simula 67 Linguagem de propósito geral; Suporte a simulação de sistemas;

Simulação de fluxos de barcosno mar norueguês

Page 7: Professor: Leandro Luque.  Paradigma procedural Dados Procedimento 1 Procedimento 2Procedimento 3 Quais são os procedimentos/funções necessários para

História do Paradigma Orientado a Objetos e seus conceitos (cont.)

Mapeamento problema -> solução

Procedimento

Procedimento

ComplexidadeCrescente em

Função do Númerode Navios

Page 8: Professor: Leandro Luque.  Paradigma procedural Dados Procedimento 1 Procedimento 2Procedimento 3 Quais são os procedimentos/funções necessários para

História do Paradigma Orientado a Objetos e seus conceitos (cont.)

Exemplo simples de simulação: Lançamento de uma bola em uma sala.

Onde a bola irá parar?

Dados

Verificarcolisão com

o chão

Verificarcolisão com

a cadeira

Verificarcolisão com

a parede

Moverbola

Alterarmovimento

da bola

Page 9: Professor: Leandro Luque.  Paradigma procedural Dados Procedimento 1 Procedimento 2Procedimento 3 Quais são os procedimentos/funções necessários para

História do Paradigma Orientado a Objetos e seus conceitos (cont.)

Dados

Verificarcolisão com

o chão

Verificarcolisão coma cadeira 1

Verificarcolisão com

a parede

Alterar aposição da

Bola 1

Verificarcolisão coma cadeira 2

Alterar aposição da

Bola 2

... ...

...

...

......

Page 10: Professor: Leandro Luque.  Paradigma procedural Dados Procedimento 1 Procedimento 2Procedimento 3 Quais são os procedimentos/funções necessários para

História do Paradigma Orientado a Objetos e seus conceitos (cont.)

Gestão da complexidade: dividir para conquistar

Bola

Cadeira

Chão

Parede

Mapeamento

direto Dados

Comportamento

Page 11: Professor: Leandro Luque.  Paradigma procedural Dados Procedimento 1 Procedimento 2Procedimento 3 Quais são os procedimentos/funções necessários para

História do Paradigma Orientado a Objetos e seus conceitos (cont.)

Quais são as características e comportamento desses objetos?

Bola

Características (dados): elasticidade,pressão, resistência, x, y, z, rotacao,velocidade, aceleracao, ...

Comportamento (procedimentos):mover, encher, esvaziar, ...

elasticidade

pressão

resistência...

mov

erencher

alterarMovim

ento

Page 12: Professor: Leandro Luque.  Paradigma procedural Dados Procedimento 1 Procedimento 2Procedimento 3 Quais são os procedimentos/funções necessários para

História do Paradigma Orientado a Objetos e seus conceitos (cont.)

Quais são as características e comportamento desses objetos?

Cadeira

Características (dados): material,pernas, cor, resistência, ...

Comportamento (procedimentos):mover, subirAssento, descerAssento

material

pernas

resistência...

mov

errecuperarPosicao

recResistencia

Page 13: Professor: Leandro Luque.  Paradigma procedural Dados Procedimento 1 Procedimento 2Procedimento 3 Quais são os procedimentos/funções necessários para

História do Paradigma Orientado a Objetos e seus conceitos (cont.)

Interação entre objetos:

mov

er

encher

alterarMovimento

Bola

Chão

Parede

Cadeira

mov

er

recResistencia

recuperarPosicao

recResistencia

recResistencia

Page 14: Professor: Leandro Luque.  Paradigma procedural Dados Procedimento 1 Procedimento 2Procedimento 3 Quais são os procedimentos/funções necessários para

História do Paradigma Orientado a Objetos e seus conceitos (cont.)

Diferença na abordagem proposta:

Dados

Procedimento 1 Procedimento 2

Procedimento 3

dados

proc

edim

ento

1

procedimento3

procedimento2

Permite o encapsulamento dos dados

acoplamento

Facilita a gestão da complexidade

Page 15: Professor: Leandro Luque.  Paradigma procedural Dados Procedimento 1 Procedimento 2Procedimento 3 Quais são os procedimentos/funções necessários para

História do Paradigma Orientado a Objetos e seus conceitos (cont.)

Como definir os objetos em programação?

Especificar as características e métodos para cada objeto?

Captar o que há de comum a classes de objetos

Page 16: Professor: Leandro Luque.  Paradigma procedural Dados Procedimento 1 Procedimento 2Procedimento 3 Quais são os procedimentos/funções necessários para

História do Paradigma Orientado a Objetos e seus conceitos (cont.)

Classe: Abstração do que há de comum (em

termos de características e comportamento) a um conjunto de objetos.

Características (atributos): velocidade, potência, numPortas, ...Comportamento (métodos): acelerar, frear, ligar, desligar, ...

Page 17: Professor: Leandro Luque.  Paradigma procedural Dados Procedimento 1 Procedimento 2Procedimento 3 Quais são os procedimentos/funções necessários para

História do Paradigma Orientado a Objetos e seus conceitos (cont.)

Classe:

Características (atributos): idade, altura,peso, ...Comportamento (métodos): mover,alimentar, descansar ...

Mamífero

Page 18: Professor: Leandro Luque.  Paradigma procedural Dados Procedimento 1 Procedimento 2Procedimento 3 Quais são os procedimentos/funções necessários para

Formalização de Conceitos

Paradigma orientado a objetos:

Um programa pode ser entendido como uma coleção de objetos com suas características e comportamento, especificados por classes, que interagem para a produção do resultado esperado.

Page 19: Professor: Leandro Luque.  Paradigma procedural Dados Procedimento 1 Procedimento 2Procedimento 3 Quais são os procedimentos/funções necessários para

Formalização de Conceitos (cont.)

Classes:

Especificam o que há de comum entre um conjunto de objetos.

Podem ser especializações de outras classes (relacionamento de herança – forma de reuso);

Page 20: Professor: Leandro Luque.  Paradigma procedural Dados Procedimento 1 Procedimento 2Procedimento 3 Quais são os procedimentos/funções necessários para

Formalização de Conceitos (cont.)

Objeto: Abstração do domínio do problema ou

da solução. É conhecido como instância de classe;

Características (atributos): velocidade, potência, numPortas, ...Comportamento (métodos): acelerar, frear, ligar, desligar, ...

Um carro qualquer é umObjeto da classe dos carrospotência = 80numPortas = 4 ...

Page 21: Professor: Leandro Luque.  Paradigma procedural Dados Procedimento 1 Procedimento 2Procedimento 3 Quais são os procedimentos/funções necessários para

Formalização de Conceitos (cont.)

Objeto: Possui:

▪ Identidade. dois objetos são diferentes mesmo que todos os seus dados sejam iguais

▪ dados que representam suas características e são chamados de atributos;

▪ procedimentos que implementam seu comportamento e são chamados de métodos;

Page 22: Professor: Leandro Luque.  Paradigma procedural Dados Procedimento 1 Procedimento 2Procedimento 3 Quais são os procedimentos/funções necessários para

Formalização de Conceitos (cont.) Atributos: dados que representam as

características de objetos;

Métodos: operações (procedimentos) que implementam o comportamento de objetos Podem receber parâmetros e retornar valores; Ao conjunto composto por nome do método +

parâmetros dá-se o nome de assinatura do método

Uma classe pode ter vários métodos com o mesmo nome, mas quantidade ou tipos de parâmetros diferentes (polimorfismo de sobrecarga);

Uma classe especializada pode redefinir um método de uma classe mais genérica (polimorfismo de inclusão);

Page 23: Professor: Leandro Luque.  Paradigma procedural Dados Procedimento 1 Procedimento 2Procedimento 3 Quais são os procedimentos/funções necessários para

Formalização de Conceitos (cont.) Mensagens:

Interação entre diferentes objetos.

Exemplo:▪ Objeto de carro interage com objeto da

estrada enquanto anda nela;▪ Objeto de cliente interage com objeto de

produto para conhecer suas características;

Page 24: Professor: Leandro Luque.  Paradigma procedural Dados Procedimento 1 Procedimento 2Procedimento 3 Quais são os procedimentos/funções necessários para

Formalização de Conceitos (cont.)

Classe e Objeto: Receita de bolo

4 ovos 2 xícaras de açúcar 3 xícaras de farinha de trigo 1 copo de suco de laranja ( 250ml) 1 colher de sopa de fermento em pó ...

Bolos diferentes

Page 25: Professor: Leandro Luque.  Paradigma procedural Dados Procedimento 1 Procedimento 2Procedimento 3 Quais são os procedimentos/funções necessários para

Representação de classes e objetos na UML

Classe

CorsaDoJoao : Carropotencia = 76numeroPortas = 5dataFabricacao = 10/12/2008

Objetos

FuscaDoJuscelino : Carropotencia = 54numeroPortas = 3dataFabricacao = 07/06/1969

Carropotencia : doublenumeroPortas : intdataFabricacao : Date

Carro()ligar()desligar()trocarMarcha()

Nome da classe

Atributos

MétodosNome do objeto Classe

Page 26: Professor: Leandro Luque.  Paradigma procedural Dados Procedimento 1 Procedimento 2Procedimento 3 Quais são os procedimentos/funções necessários para

Codificação de classes com Java Classe

CorsaDoJoao : Carropotencia = 76numeroPortas = 5dataFabricacao = 10/12/2008

Objetos

FuscaDoJuscelino : Carropotencia = 54numeroPortas = 3dataFabricacao = 07/06/1969

class Carro {

double potencia; int numeroPortas; java.util.Date dataFabricacao;

Carro(double p, int numP, String d) { potencia = p; //...}

void ligar() { // código para ligar o carro. }

void desligar() { // código para desligar o carro. }

void trocarMarcha() { // código para trocar a marcha do carro. }}

Carro FuscaDoJuscelino = new Carro(54, 3, “07/06/1969”);

Carro FuscaDoJoao = new Carro(76, 5, “10/12/2008”);

Page 27: Professor: Leandro Luque.  Paradigma procedural Dados Procedimento 1 Procedimento 2Procedimento 3 Quais são os procedimentos/funções necessários para

Como identificar classes e objetos?

Pode representar: Coisas tangíveis: livros, pessoas Incidente (evento, ocorrência): CopaDoMundo,

BO Interação (transação, contrato): Venda

Quais objetos estão presentes no domínio do problema e solução?

Procure por substantivos no domínio do problema/solução para identificar classes/objetos e atributos;

Procure por verbos no domínio do problema/solução para identificar métodos;

Page 28: Professor: Leandro Luque.  Paradigma procedural Dados Procedimento 1 Procedimento 2Procedimento 3 Quais são os procedimentos/funções necessários para

Como identificar classes e objetos?

Perguntas: Quais dados precisam ser produzidos,

processados ou armazenados? Qual deve ser o comportamento do

sistema? Como posso organizar os dados e

comportamento visando o reuso?

Page 29: Professor: Leandro Luque.  Paradigma procedural Dados Procedimento 1 Procedimento 2Procedimento 3 Quais são os procedimentos/funções necessários para

Como identificar classes e objetos?

Exemplo: “Um cliente deve poder consultar e

comprar produtos através da nossa loja virtual. Desejamos poder cadastrar os produtos informando seu código, nome e preço e deixaremos para o cliente a realização do cadastro. No cadastro do cliente, deverá ser informado o cpf, nome, endereço e telefone.”

Page 30: Professor: Leandro Luque.  Paradigma procedural Dados Procedimento 1 Procedimento 2Procedimento 3 Quais são os procedimentos/funções necessários para

Leitura Recomendada

A history of object-oriented programming and their impact on program design and software development: http://

jeffsutherland.com/papers/Rans/OOlanguages.pdf

Page 31: Professor: Leandro Luque.  Paradigma procedural Dados Procedimento 1 Procedimento 2Procedimento 3 Quais são os procedimentos/funções necessários para

Obrigado!

Ajude a plantar árvores. É possível compensar sua emissão de carbono: www.clickarvore.com.br