Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao...

68
Introdu¸c˜ ao ` aPrograma¸c˜ ao Orientada a Objetos BCC 221 - Programa¸c˜ ao Orientada a Objectos(POO) Guillermo C´ amara-Ch´ avez Departamento de Computa¸c˜ ao - UFOP

Transcript of Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao...

Page 1: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

Introducao a Programacao Orientada a ObjetosBCC 221 - Programacao Orientada a Objectos(POO)

Guillermo Camara-Chavez

Departamento de Computacao - UFOP

Page 2: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

1/67

Paradigma Imperativo I

I Linguagens Imperativas:I Fazem clara distincao entre funcoes e dados.I Funcoes, a princıpio, sao ativas e tem comportamento.I Dados sao repositorios passivos de informacao, afetados por

funcoes.

Page 3: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

2/67

O que e um programa? I

I Programas processam dados: valores em uma contabancaria, caracteres entrados por um teclado, pontos de umaimagem, etc;

I O paradigma de programacao orientado a objetos consideraque os dados a serem processados e os mecanismos deprocessamento destes dados devem ser considerados emconjunto;

I A criacao de modelos que representam conjuntamente dadose operacoes nestes dados e a solucao.

Page 4: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

3/67

O que e um programa? II

Page 5: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

4/67

O que e um programa? III

Page 6: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

5/67

Modelos I

I Modelos sao representacoes simplificadas de objetos,pessoas, itens, tarefas, processos, etc. usados comumente porpessoas no seu dia-a-dia independente do uso decomputadores.

I Para simplificar o uso de modelos em tarefas comuns,consideramos o Restaurante Caseiro Hipotetico, que serverefeicoes por quilo, e onde o gerente que fica na balanca e nocaixa:

I anota os pesos dos pratos dos clientes eI anota os pedidos que os garcons trazem em uma comanda.

Page 7: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

6/67

Modelos II

I A figura abaixo mostra a comanda do restaurante caseirohipotetico

Page 8: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

7/67

Modelos III

I O modelo do restaurante representa certos dados ouinformacoes, que no caso sao os itens e a quantidade dospedidos;

I Um modelo comumente contem operacoes ouprocedimentos associados a ele, por exemplo:

I Inclusao de um pedido para uma mesa;I Encerramento de um pedido de uma mesa eI Apresentacao da conta para os clientes.

Page 9: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

8/67

Modelos IV

I Modelos podem conter submodelos e ser parte de outromodelos.

I A simplificacao inerente aos modelos e, em muitos casos,necessaria: dependendo do contexto, algumas informacoesdevem ser ocultadas ou ignoradas;

Page 10: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

9/67

Modelos V

I Em um modelo, a representacao das informacoes sobreuma pessoa pode ser feita de maneira diferentedependendo do contexto.

contexto dados operacoes

empregadaempresa

nome, cargo,salario, horasEx-tras

calculaSalario, au-mentaSalario

pacienteclınica

nome, sexo, idade,altura, peso, histo-ricoConsultas

VerificaObesidade

contato co-mercial

nome, telefone,cargo, empresa

mostrarTelefone

Page 11: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

10/67

POO vs. Paradigma Imperativo I

Processo de Ensinar

Linguagens Imperativas POO

Page 12: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

11/67

O que e POO? I

I Programacao Orientada a Objetos e uma metodologia dedesenvolvimento de software.

I E um paradigma de programacao onde se usam classes eobjetos criados a partir dos modelos descritosanteriormente, para representar e processar dados.

I Sua principal vantagem e a proximidade com a forma que osseres humanos visualizam e entendem o mundo ao seu redor.

Page 13: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

12/67

O que e POO? II

I Tem como principal objetivo facilitar a modelagem edesenvolvimento de sistemas, atraves da interacao entreobjetos.

I Os modelos na POO sao chamados de classes

I Classes sao estruturas que contem um determinadomodelo.

I os dados devem ser representados eI as operacoes devem ser efetuadas entre esses dados

Page 14: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

13/67

O que e POO? III

I As classes especificam as caracterısticas dos objetosmaterializados a partir delas.

I Tais caracterısticas sao chamados de atributos.

I Ao ser materializado um objeto dizemos que criamos umaInstancia da classe.

I Instancias distintas de uma mesma classe possuem os mesmosatributos, entretanto com possıveis diferencas de valores.

Page 15: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

14/67

O que e POO? IV

I Os objetos sao diferenciadas pelos seus nomes de referencia enao pelo valor de seus atributos.

Page 16: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

15/67

O que e POO? V

I Em muitas situacoes os problemas necessitam serfragmentados de acordo com as acoes que esse modeloespecificara para a representacao do problema.

I Objetos possuem comportamentos os quais sao representadosnas classes atraves dos metodos.

Page 17: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

16/67

O que e POO? VI

I A fragmentacao permite que o problema seja representadopor um conjunto de metodos, os quais representam asacoes do modelo.

I Vantagens de ter varios metodos em um modelo:I facilidade em escrever o modelo;I utilizacoes repetidas de um mesmo metodo;I facilidade em dar manutencao;I utilizacao adequada de recursos.

Page 18: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

17/67

Fundamentos do Modelo de Objetos I

I Encapsulamento

I Modularidade

I Abstracao de dados

I Hierarquia

Page 19: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

18/67

Abstracao de conceitos do Domınio I

I As pessoas tipicamente tentam compreender o mundo,construindo modelos mentais de partes dele.

I Um modelo mental abstrai apenas as caracterısticasrelevantes de um sistema para seu entendimento.

Page 20: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

19/67

Abstracao de conceitos do Domınio II

Page 21: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

20/67

Abstracao de conceitos do Domınio III

Concreto: todos os detalhes darealidade

Abstrato: so caracterısticasimportantes

Page 22: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

21/67

Abstracao de conceitos do Domınio IV

Quanto mais abstrato mais geral.A figura ao lado poderia represen-tar qualquer aviao.

Quanto mais concreto, mais es-pecıficoO aviao ao lado e tao especıfico,com tantos detalhes, que so re-presenta ele mesmo

Page 23: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

22/67

Abstracao de conceitos do Domınio V

I As pessoas tipicamente tentam compreender o mundo,construindo modelos mentais de partes dele.

I Um modelo mental abstrai apenas as caracterısticas relevantesde um sistema para seu entendimento.

I Um Engenheiro Civil quando pensa em um elevador, visualizaele de um modo diferente que um Analista de Sistema.

Page 24: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

23/67

Abstracao de conceitos do Domınio VI

I Engenheiro: Qual a Marca? Qual a capacidade? Qual aVelocidade? Indicado para que tipo de edifıcio? Qual alargura? Qual a Altura?

I Analista: Quais as caracterısticas que devem ser consideradas:estado(subindo, descendo, parado), porta aberta ou fechado,qual andar que o elevador esta, indicar o andar atual nopainel. Abrir porta, Fechar porta, subir, descer, parar, atualizarindicador de andar.

Page 25: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

24/67

Encapsulamento I

I E um dos conceitos basicos de POOI A ideia de uma “caixa preta”:I Nao e necessario saber os detalhes de funcionamento interno,

mas sim como utilizar.

I Encapsulamento e um dos benefıcios mais palpaveis da POO.

I Modelos que encapsulam os dados possibilitam a criacao deprogramas com menos erros e mais clareza.

Page 26: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

25/67

Encapsulamento II

Page 27: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

26/67

Encapsulamento III

I Encapsular e esconder como as coisas funcionam por tras deuma interface externa

Ex: caixa automatico

I Como ele e implementado internamente?I Utilizamos atraves de operacoes bem conhecidas

I Em muitos casos, sera desejavel que os dados nao possam seracessados ou usados diretamente, mas somente atraves dasoperacoes.

Page 28: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

27/67

Modularidade I

Page 29: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

28/67

Modularidade II

I Um sistema com um modulo que permite ordenar dados

I O mudulo inicialmente foi implementado usando o algoritmobubblesort

I Re-implementacao do modulo usando o quicksort

Page 30: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

29/67

Modularidade III

I Propiedade de construcao de sistemas atraves de modulos

I A coesao de um modulo denota a media da inter-relacaoentre os seus componentes. Uma classe nao deve assumirresponsabilidades que nao sao suas.

I O acoplamento entre os modulos e o grau deinterdependencia entre eles

Ideal: Alta coesao e Baixo acoplamento

Page 31: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

30/67

Modularidade I

I Modularizacao e o processo de dividir um todo em partes bemdefinidas, que podem ser construıdas e examinadasseparadamente

I Essas partes interagem entre si, fazendo com que o sistemafuncione de forma adequada

I Particionar um programa em componentes individuais, podereduzir a complexidade

Page 32: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

31/67

Modularidade II

I Criterios para modularidade

Decomposicao: e alcancado quando o modelo de design ajudaa decompor os problemas em outrossubproblemas cujas solucoes podem seratingidas separadamente. Este tipo de design echamada de top-down

Composicao: Achar maneiras de desenvolver pedacos deprogramas que executem tarefas bem definidas eutilizaveis em outros contextos

Page 33: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

32/67

Modularidade III

Entendimento: ajuda a producao de modulos que podem serseparadamente compreendidos pelosdesenvolvedores; no pior caso, o leitor deve teratencao sobre poucos modulos vizinhos.

Continuidade: um metodo de desing satisfaz a continuidadese uma pequena mudanca na especificacao doproblema resulta em alteracoes de um unico oupoucos modulos

Protecao: prove a arquitetura de isolamento quando daocorrencia de condicoes anomalas em tempo deexecucao, seus efeitos ficam restritos aquelemodulo ou pelo menos se propaga a poucosvizinhos.

Page 34: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

33/67

Hierarquia I

I Quando um sistema tem muitos detalhes, ele pode serdecomposto em uma hierarquia de abstracoes

I Permite que detalhes relevantes sejam introduzidos de umamaneira controlada

I E um “ranking” ou uma ordenacao de abstracoes

I Duas categorias de hierarquiasI Hierarquia de agregacao/decomposicaoI Hierarquia de generalizacao/especializacao

Page 35: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

34/67

Hierarquia II

Generalizar: remover restricoes para obter abstracoes maisgenericas

Especializar: buscar caracterısticas que diferenciem abstracoesafins

Agregar: combinar abstracoes para obter estruturas ecomportamentos mais complexos

Decompor: significa detalhar uma abstracao dividindo-a nos seuselementos mais constituintes

Page 36: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

35/67

Hierarquia III

Page 37: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

36/67

Conceitos Basicos: Objetos I

I Encapsula dados (atributos) e funcoes (membros), ou seja, euma abstracao de dados e uma abstracao de operacoesem uma mesma estrutura

I Possui uma interface de acesso bem definida (atributos emetodos internos sao invisıveis ao meio externo)

I Um objetos possui estado, comportamento e identidade

Page 38: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

37/67

Conceitos Basicos: Objetos II

I Estado de um objeto: conjunto de valores associados aspropriedades do objeto. Representam:

I caracterısticas,I atributos, ouI qualidades associadas a entindade que representam

I O comportamente: descreve como se processam asmudancas do estado em funcao de sua interacao com omundo externo

Page 39: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

38/67

Conceitos Basicos: Objetos III

Page 40: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

39/67

Conceitos Basicos: Objetos IV

I ExemploI Um empregado de uma firma pode ser representando por um

objetoI Todo empregado tem: nome, carteira de identidade, endereco,

secao na qual trabalha, salario, etcI Pode-se: alterar o salario de um empregado, imprimir seu

endereco, etc

Page 41: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

40/67

Conceitos Basicos: Objetos V

I Exemplo

I Uma lista pode ser representada como um objetoI Todo lista tem: um numero de elementos, etcI Pode-se: inseriri ou remover elementos, imprimir elementos, etc

Page 42: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

41/67

Conceitos Basicos: Classes I

“Classe e um agrupamento de objetos que revelam profundassemelhancas entre si, tanto no aspecto estrutural quanto nofuncional”.

Exemplo:Tom, Garfield, Frajola, Manda-chuva e Batatinha. Sao todos damesma classe: Gatos

Page 43: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

42/67

Conceitos Basicos: Classes II

Page 44: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

43/67

Conceitos Basicos: Classes III

I Uma classe e um tipo:I definido pelo usuarioI contem o molde, a especificacao para os objetos (como o tipo

inteiro contem o molde para as variaveis declaradas comointeiros)

Page 45: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

44/67

Conceitos Basicos: Classes IV

I A classe envolve, associa, metodos e dados, controlando oacesso a estes

I Defini-la implica em especificar os seus ATRIBUTOS (dados)e seus SERVICOS (codigo)

I Instancia: a partir de uma classe pode-se gerar diversasinstancias (objetos)

Page 46: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

45/67

Conceitos Basicos: Classes V

Page 47: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

46/67

Conceitos Basicos: Classes VI

I Classes AbstractasI Classes que nao utilizaremos para instanciarI Existem apenas para servir de molde para outras classes

I Para que outras classes herdem a interface e/ouimplementacao

Page 48: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

47/67

Conceitos Basicos: Classes VII

I Classes ConcretasI Podem ser instanciadas

I Ou seja, podem criar objetos

Page 49: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

48/67

Exemplos de modelos I

I Um objeto Homem, pode ser “moldado” pela classe pessoa

I Uma cadeira pela classe moveis

I Um fusca pela classe carro, etc.

I Desta forma uma classe pode gerar varios objetos, tendotodos eles as mesmas caracterısticas

Page 50: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

49/67

Exemplos de modelos II

I Instancias

onde:

I P: Classe do objeto PI P1, P2, P − 3: Instancias da classe P (cada classe tera seus

proprios dados independentes dos outros.

Page 51: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

50/67

Exemplos de modelos III

I Exemplo 1: Uma lampada incandescente

I Atencao para os nomes de dados e das operacoes.

I A abrangencia do modelo define os dados e operacoes.

Page 52: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

51/67

Exemplos de modelos IV

Page 53: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

52/67

Exemplos de modelos V

I Exemplo 2: Uma conta bancaria simplificada

I Aspectos praticos de contas reais (senhas, taxas) foramdeixados de lado.

Page 54: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

53/67

Exemplos de modelos VI

Page 55: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

54/67

Exemplos de modelos VII

Page 56: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

55/67

Interfaces I

I Atraves dos metodos, interagimos com o objeto solicitandoe/ou alterando seu estado interno

I Esta e a unica forma de interagirmos com o interior do objeto

I Da a ideia de uma “caixa preta”,I a forma como os dados sao trabalhados internamente nao tem

muito significado para o usuario,I ja o resultado da acao e importante

Page 57: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

56/67

Interfaces II

I A interacao de um objeto com o mundo externo e realizadoatraves de um conjunto de metodos que representa ainterface do objeto

Page 58: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

57/67

Interfaces III

Page 59: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

58/67

Mensagens

I Os objetos sao solicitados a executar algo atraves demensagens

I Mensagem: Ativa um metodo de um objeto

Page 60: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

59/67

Resumo I

Objeto: e uma entidade fechada que possui dados(caracterısticas) e metodos (operacoes ou acoes)

Metodo: e uma sub-rotina interno no objetos que informacomo executar uma acao

Classe: e um recipiente para construir objetos. Aqui saodefinidos os atributos e metodos.

Page 61: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

60/67

Resumo II

Instancia: e um objeto que detem os dados e a referencia paraas classes

Mensagem: Perguntar a um objeto alguma coisa e chamado de:“envio de mensagem”. Isto e similar a solicitar umasub-rotina.

Page 62: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

61/67

Heranca I

I Objetos definidos pela mesma classe, pode apresentar umcomportamento especifico

I Observe: Se temos a classe : Moveis

I Esta classe pode instancia uma cadeira e uma mesa, porem apropriedade: Num de gavetas nao se aplica aos dois objetos.Apenas a mesa

I Como fazer para instanciar objetos com atributos diferentesde uma mesma classe?

Page 63: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

62/67

Heranca II

I Uma forma bastate utilizada na POO esta relacionada com oconceito de heranca

I Classes mais especificas sao modeladas partindo de uma classemais generica e assim “herdando” todo as suas caracterısticas.

Page 64: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

63/67

Heranca III

I Heranca e um mecanismo simples e poderoso que permiteque uma nova classe seja descrita a partir de outra classe jaexistente, herdando as suas propriedades.

I No nosso exemplo, terıamos a classe: Moveis (mais generica)e as sub-classes: CMesa e CCadeira (cada uma com suasparticularidades, podendo assim gerar seus objetos que“herdam” as caracterısticas mais gerais da classe moveis.

Page 65: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

64/67

Heranca IV

I Diz-se que uma subclasse herda os metodos e as variaveis deinstancia de uma superclasse.

I A subclasse deve ser capaz de adicionar novos metodos evariaveis, alem de redefinir os metodos herdados

I Uma subclasse e uma especializacao de uma superclasse

I Uma instancia da subclasse tem todas as propriedades de umainstancia da superclasse, mais suas caracterısticas particulares,e nunca menos

Page 66: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

65/67

Heranca V

Page 67: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

66/67

Heranca VI

Page 68: Introdu˘c~ao a Programa˘c~ao Orientada a Objetos · 5/67 ModelosI I Modelos s~ao representa˘c~oes simpli cadas de objetos, pessoas, itens, tarefas, processos, etc. usados comumente

67/67

FIM