A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Paradigma Orientado a Objetos

Apresentações semelhantes


Apresentação em tema: "Paradigma Orientado a Objetos"— Transcrição da apresentação:

1 Paradigma Orientado a Objetos
Professor: Leandro Luque

2 Como pensamos? Paradigma procedural
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 Procedimento 3 Dados Procedimento 1 Procedimento 2

3 Como pensamos? Exemplo Cálculo de média de alunos Notas
procedure calcularMedia(); var contador: integer; begin media := 0; for contador:=1 to 4 do begin media := media + notas[contador] end; media := media / 4; procedure exibirMedia(); writeln('A média do aluno é ', media); lerNotas(); calcularMedia(); exibirMedia(); end. Notas program media; uses wincrt; var notas: Array[1..4] of real; media: real; procedure lerNotas(); cont: integer; begin for cont:=1 to 4 do begin write(‘Nota ', cont, ': '); readln(notas[cont]); end; Calcular média Ler notas do aluno Exibir média do aluno

4 Mudando de Paradigma Problema Solução Solução

5 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;

6 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 barcos no mar norueguês

7 História do Paradigma Orientado a Objetos e seus conceitos (cont.)
Mapeamento problema -> solução Procedimento Complexidade Crescente em Função do Número de Navios Procedimento

8 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? Verificar colisão com o chão Mover bola Dados Verificar colisão com a parede Verificar colisão com a cadeira Alterar movimento da bola

9 História do Paradigma Orientado a Objetos e seus conceitos (cont.)
Verificar colisão com a cadeira 2 ... ... Verificar colisão com o chão Verificar colisão com a cadeira 1 ... Dados Alterar a posição da Bola 1 Verificar colisão com a parede ... Alterar a posição da Bola 2 ... ...

10 História do Paradigma Orientado a Objetos e seus conceitos (cont.)
Gestão da complexidade: dividir para conquistar Parede Chão Mapeamento direto Dados Comportamento Bola Cadeira

11 História do Paradigma Orientado a Objetos e seus conceitos (cont.)
Quais são as características e comportamento desses objetos? Bola mover alterarMovimento elasticidade Características (dados): elasticidade, pressão, resistência, x, y, z, rotacao, velocidade, aceleracao, ... Comportamento (procedimentos): mover, encher, esvaziar, ... pressão resistência ... encher

12 História do Paradigma Orientado a Objetos e seus conceitos (cont.)
Quais são as características e comportamento desses objetos? mover recResistencia Cadeira material pernas Características (dados): material, pernas, cor, resistência, ... Comportamento (procedimentos): mover, subirAssento, descerAssento resistência ... recuperarPosicao

13 História do Paradigma Orientado a Objetos e seus conceitos (cont.)
Interação entre objetos: recResistencia mover recResistencia recuperarPosicao Chão Cadeira encher mover recResistencia alterarMovimento Parede Bola

14 História do Paradigma Orientado a Objetos e seus conceitos (cont.)
Diferença na abordagem proposta: Permite o encapsulamento dos dados Procedimento 3 Dados procedimento1 procedimento2 acoplamento dados Procedimento 1 Procedimento 2 procedimento3 Facilita a gestão da complexidade

15 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

16 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, ...

17 História do Paradigma Orientado a Objetos e seus conceitos (cont.)
Classe: Mamífero Características (atributos): idade, altura, peso, ... Comportamento (métodos): mover, alimentar, descansar ...

18 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.

19 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);

20 Formalização de Conceitos (cont.)
Objeto: Abstração do domínio do problema ou da solução. É conhecido como instância de classe; Um carro qualquer é um Objeto da classe dos carros potência = 80 numPortas = 4 ... Características (atributos): velocidade, potência, numPortas, ... Comportamento (métodos): acelerar, frear, ligar, desligar, ...

21 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;

22 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);

23 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;

24 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

25 Representação de classes e objetos na UML
Nome da classe Atributos Métodos Nome do objeto Classe

26 Codificação de classes com Java
Objetos 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”);

27 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;

28 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?

29 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.”

30 Leitura Recomendada A history of object-oriented programming and their impact on program design and software development:

31 Obrigado! Ajude a plantar árvores. É possível compensar sua emissão de carbono:


Carregar ppt "Paradigma Orientado a Objetos"

Apresentações semelhantes


Anúncios Google