40
Programação Orientada a Objetos Introdução a POO Modelo de Objetos Técnico em Informática Prof. Marcos André Pisching, M.Sc.

Programação Orientada a Objetos Introdução a POO Modelo de ...frozza/2013.1/BSI12/BSI12-POOI-Aula006a... · Programação Orientada a Objetos Introdução a POO Modelo de Objetos

Embed Size (px)

Citation preview

Page 1: Programação Orientada a Objetos Introdução a POO Modelo de ...frozza/2013.1/BSI12/BSI12-POOI-Aula006a... · Programação Orientada a Objetos Introdução a POO Modelo de Objetos

Programação Orientada a Objetos Introdução a POO

Modelo de Objetos Técnico em Informática

Prof. Marcos André Pisching, M.Sc.

Page 2: Programação Orientada a Objetos Introdução a POO Modelo de ...frozza/2013.1/BSI12/BSI12-POOI-Aula006a... · Programação Orientada a Objetos Introdução a POO Modelo de Objetos

2

O Modelo de ObjetosO Modelo de Objetos

• Objetos

– Resolução de um problema: passa pela análise de uma determinada situação real – o objetivo é a construção de um modelo que represente esta situação real.

– O modelo deverá considerar os objetos (entidades) que integram o problema.

– Objeto é considerado qualquer “coisa” que tenha significado dentro do contexto do problema, seja ele concreto ou abstrato.

Programação Orientada a Objetos Prof. Marcos André Pisching

Page 3: Programação Orientada a Objetos Introdução a POO Modelo de ...frozza/2013.1/BSI12/BSI12-POOI-Aula006a... · Programação Orientada a Objetos Introdução a POO Modelo de Objetos

3

O Modelo de ObjetosO Modelo de Objetos

• Objetos – Exemplos:

• Um livro

• Uma página do livro

• Uma viagem

• Uma determinada data

• O endereço de alguém

• Uma pessoa

• Uma música

Programação Orientada a Objetos Prof. Marcos André Pisching

Page 4: Programação Orientada a Objetos Introdução a POO Modelo de ...frozza/2013.1/BSI12/BSI12-POOI-Aula006a... · Programação Orientada a Objetos Introdução a POO Modelo de Objetos

4

O Modelo de ObjetosO Modelo de Objetos

• Objetos – Cada objeto consiste em uma entidade com

identidade própria.

– Mesmo que, a partir de uma observação simples, se diga que dois objetos são iguais, tem-se dois objetos distintos.

– Se você observar dois volumes de um mesmo livro – os dois são objetos distintos, porém, apresentam características semelhantes.

Programação Orientada a Objetos Prof. Marcos André Pisching

Page 5: Programação Orientada a Objetos Introdução a POO Modelo de ...frozza/2013.1/BSI12/BSI12-POOI-Aula006a... · Programação Orientada a Objetos Introdução a POO Modelo de Objetos

5

O Modelo de ObjetosO Modelo de Objetos

• Objetos - Na programação • Um objeto é a abstração de uma entidade do

mundo real.

• Cada objeto apresenta sua própria existência, identificação, características de composição e tem alguma utilidade – pode executar determinados serviços quando solicitados.

Programação Orientada a Objetos Prof. Marcos André Pisching

Page 6: Programação Orientada a Objetos Introdução a POO Modelo de ...frozza/2013.1/BSI12/BSI12-POOI-Aula006a... · Programação Orientada a Objetos Introdução a POO Modelo de Objetos

6

O Modelo de ObjetosO Modelo de Objetos

• Objetos - Na programação • Um objeto constitui-se em um elemento do

programa.

• Após sua criação (através da execução de um comando apropriado) ele passa a ocupar espaço na memória.

• Todo objeto deve ter uma identificação – nome que o objeto apresenta, o qual será definido pelo projetista do modelo.

Programação Orientada a Objetos Prof. Marcos André Pisching

Page 7: Programação Orientada a Objetos Introdução a POO Modelo de ...frozza/2013.1/BSI12/BSI12-POOI-Aula006a... · Programação Orientada a Objetos Introdução a POO Modelo de Objetos

7

O Modelo de ObjetosO Modelo de Objetos

• Objetos - Na programação • Atributos: são as características de composição que

constituem e definem a estrutura de um objeto.

Ex.: objeto lapiseira – pode ser definido pelo nome umaLapiseira e possui como atributos:

- cor predominante (valor simples);

- peso (valor simples);

- sistema de avanço do grafite (outro objeto);

- comprimento do grafite (valor simples).

Obs.: os valores dos atributos podem ser modificados durante a vida útil do objeto.

Programação Orientada a Objetos Prof. Marcos André Pisching

Page 8: Programação Orientada a Objetos Introdução a POO Modelo de ...frozza/2013.1/BSI12/BSI12-POOI-Aula006a... · Programação Orientada a Objetos Introdução a POO Modelo de Objetos

8

O Modelo de ObjetosO Modelo de Objetos

• Objetos - Na programação • Comportamento ou métodos: são características

de utilidade – são às ações ou serviços que o objeto pode executar.

• O Objeto umaLapiseira - comportamentos:

– escrever;

– avançar grafite;

– recolher grafite;

Programação Orientada a Objetos Prof. Marcos André Pisching

Page 9: Programação Orientada a Objetos Introdução a POO Modelo de ...frozza/2013.1/BSI12/BSI12-POOI-Aula006a... · Programação Orientada a Objetos Introdução a POO Modelo de Objetos

9

O Modelo de ObjetosO Modelo de Objetos

• Objetos – Representação de um objeto

Objeto tal

Programação Orientada a Objetos Prof. Marcos André Pisching

Page 10: Programação Orientada a Objetos Introdução a POO Modelo de ...frozza/2013.1/BSI12/BSI12-POOI-Aula006a... · Programação Orientada a Objetos Introdução a POO Modelo de Objetos

10

O Modelo de ObjetosO Modelo de Objetos

• Objetos – objeto “empregado”

Programação Orientada a Objetos Prof. Marcos André Pisching

Objeto Empregado

Programação Orientada a Objetos Prof. Marcos André Pisching

Page 11: Programação Orientada a Objetos Introdução a POO Modelo de ...frozza/2013.1/BSI12/BSI12-POOI-Aula006a... · Programação Orientada a Objetos Introdução a POO Modelo de Objetos

11

O Modelo de ObjetosO Modelo de Objetos

• Objetos – Exemplo: objeto resultante da abstração da

porta de uma sala – UmaPorta • Atributos (composição):

- cor (azul)

- altura (2.1)

- largura (0.8)

- fechadura (outro objeto)

• Serviços (comportamento):

- abrir-se

- fechar-se

Programação Orientada a Objetos Prof. Marcos André Pisching

Page 12: Programação Orientada a Objetos Introdução a POO Modelo de ...frozza/2013.1/BSI12/BSI12-POOI-Aula006a... · Programação Orientada a Objetos Introdução a POO Modelo de Objetos

12

O Modelo de ObjetosO Modelo de Objetos

• Objetos

– Exemplo: objeto resultante da abstração de um aluno de uma disciplina – UmAluno

• Atributos: - nome (José)

- matrícula (2399382-9)

- nota parcial (8.0)

- nota final (9.0)

• Serviços: - estudar

- assistir aula

- realizar prova

Programação Orientada a Objetos Prof. Marcos André Pisching

Page 13: Programação Orientada a Objetos Introdução a POO Modelo de ...frozza/2013.1/BSI12/BSI12-POOI-Aula006a... · Programação Orientada a Objetos Introdução a POO Modelo de Objetos

13

O Modelo de ObjetosO Modelo de Objetos

• Objetos – Exemplo: uma cidade – UmaCidade

• Atributos: - nome (Lages)

- habitantes (185000)

- área (500)

- prefeito (Francisco Azevedo)

- prefeitura (outro objeto)

- plano diretor (outro objeto)

• Serviços: - mudar prefeito

- alterar plano diretor

- alterar o número de habitantes

Programação Orientada a Objetos Prof. Marcos André Pisching

Page 14: Programação Orientada a Objetos Introdução a POO Modelo de ...frozza/2013.1/BSI12/BSI12-POOI-Aula006a... · Programação Orientada a Objetos Introdução a POO Modelo de Objetos

14

O Modelo de ObjetosO Modelo de Objetos

• Objetos – Representação de um objeto em um modelo.

UmaCidade

Prefeitura

Plano Diretor

Programação Orientada a Objetos Prof. Marcos André Pisching

Page 15: Programação Orientada a Objetos Introdução a POO Modelo de ...frozza/2013.1/BSI12/BSI12-POOI-Aula006a... · Programação Orientada a Objetos Introdução a POO Modelo de Objetos

15

ClassesClasses

• Define as características de um grupo de objetos – define como serão as instâncias pertencentes a ela.

• Especifica quais serão os atributos de todos os objetos que pertencerem a classe.

• Determina quais serviços (operações) qualquer objeto poderá executar.

Programação Orientada a Objetos Prof. Marcos André Pisching

Page 16: Programação Orientada a Objetos Introdução a POO Modelo de ...frozza/2013.1/BSI12/BSI12-POOI-Aula006a... · Programação Orientada a Objetos Introdução a POO Modelo de Objetos

16

ClassesClasses

• Dois ou mais objetos podem pertencer a uma mesma classe.

• Desta forma, os objetos terão os mesmos atributos.

• Obs.: Dizer que objetos possuem os mesmos atributos, trata-se da existência deles, porém, vale ressaltar, que o conteúdo ou valor de cada atributo pode ser diferente.

Ex.: A cor do Corsa da Ana é Verde.

A cor do Astra do Rivaldo é Prata.

Programação Orientada a Objetos Prof. Marcos André Pisching

Page 17: Programação Orientada a Objetos Introdução a POO Modelo de ...frozza/2013.1/BSI12/BSI12-POOI-Aula006a... · Programação Orientada a Objetos Introdução a POO Modelo de Objetos

17

ClassesClasses

• A abstração – tem objetivo de definir um modelo de resolução de um problema – procura-se identificar quais objetos integram o problema e como os mesmos interagem.

• Ao identificar os objetos, define-se:

– Quais são os atributos, e

– Quais são os serviços.

• Tendo as características do objeto, é possível determinar à qual classe ele pertence.

Programação Orientada a Objetos Prof. Marcos André Pisching

Page 18: Programação Orientada a Objetos Introdução a POO Modelo de ...frozza/2013.1/BSI12/BSI12-POOI-Aula006a... · Programação Orientada a Objetos Introdução a POO Modelo de Objetos

18

ClassesClasses

• Como todo objeto é uma instância de uma classe, então, pode se dizer que a classe é o tipo do Objeto.

• A classe consiste em uma entidade, descrevendo:

– Quais atributos terão os objetos pertencentes a mesma.

– Quais serviços os objetos poderão executar.

Programação Orientada a Objetos Prof. Marcos André Pisching

Page 19: Programação Orientada a Objetos Introdução a POO Modelo de ...frozza/2013.1/BSI12/BSI12-POOI-Aula006a... · Programação Orientada a Objetos Introdução a POO Modelo de Objetos

19

ClassesClasses

• Processo de Modelagem de um Problema

– Análise/projeto

– Implementação

• Análise e Projeto (1/2)

– Consiste em proceder uma análise da situação real, tendo por objetivo abstrair o que deve ser relevante para o problema.

– O problema deve ser analisado como um todo.

– Define-se todos os objetos envolvidos.

Programação Orientada a Objetos Prof. Marcos André Pisching

Page 20: Programação Orientada a Objetos Introdução a POO Modelo de ...frozza/2013.1/BSI12/BSI12-POOI-Aula006a... · Programação Orientada a Objetos Introdução a POO Modelo de Objetos

20

ClassesClasses

• Análise e Projeto (2/2) – Com a identificação dos objetos, é possível

identificar as classes envolvidas e os relacionamentos entre elas.

– Para uma classe, nesta fase, serão definidos quais atributos terão seus objetos e quais serviços estes poderão executar.

• Implementação – Consiste em expressar a classe em uma

linguagem de programação.

Programação Orientada a Objetos Prof. Marcos André Pisching

Page 21: Programação Orientada a Objetos Introdução a POO Modelo de ...frozza/2013.1/BSI12/BSI12-POOI-Aula006a... · Programação Orientada a Objetos Introdução a POO Modelo de Objetos

21

ClassesClasses

• Implementação

– Um objeto presta um serviço, executando o respectivo método especificado em sua classe.

– A todo serviço corresponderá um método.

– Serviço: ação do objeto.

– Método: a forma como a ação será executada.

Objeto presta

ServiçoMétodo correspondente

especificado em sua classeExecutando

Programação Orientada a Objetos Prof. Marcos André Pisching

Page 22: Programação Orientada a Objetos Introdução a POO Modelo de ...frozza/2013.1/BSI12/BSI12-POOI-Aula006a... · Programação Orientada a Objetos Introdução a POO Modelo de Objetos

22

ClassesClasses

• Implementação

– Esta fase é dependente da fase de análise/projeto.

– É de fundamental importância que a fase de análise/projeto procure definir de maneira mais adequada possível as classes que compõem o problema.

– Uma definição incorreta na fase de análise/projeto implica em erros na implementação.

Programação Orientada a Objetos Prof. Marcos André Pisching

Page 23: Programação Orientada a Objetos Introdução a POO Modelo de ...frozza/2013.1/BSI12/BSI12-POOI-Aula006a... · Programação Orientada a Objetos Introdução a POO Modelo de Objetos

23

ClassesClasses

• Conclusão - uma classe instanciada apresenta:

– Seus atributos (estrutura do objeto).

– Representação dos atributos (valores simples, objetos).

– Métodos que o objeto poderá executar (serviços que o objeto pode prestar).

– Para cada um dos métodos, qual a seqüência de ordens que computador deve executar.

Programação Orientada a Objetos Prof. Marcos André Pisching

Page 24: Programação Orientada a Objetos Introdução a POO Modelo de ...frozza/2013.1/BSI12/BSI12-POOI-Aula006a... · Programação Orientada a Objetos Introdução a POO Modelo de Objetos

24

ClassesClasses

• Representação de Classes

Relógio

formato:String

cor:String

peso:Real

aPulseira:Pulseira

osPonteiros:PonteiroaPilha:Pilha

iniciarMarcacaoHoras

informarHoras

corrigirHorastrocarPilhas

Nome da Classe

Especificação dos Atributos

Obs.: Atributos que são objetos(aPulseira, osPonteiros e

aPilha), e suas respectivasclasses

Especificação dos Métodos

Programação Orientada a Objetos Prof. Marcos André Pisching

Page 25: Programação Orientada a Objetos Introdução a POO Modelo de ...frozza/2013.1/BSI12/BSI12-POOI-Aula006a... · Programação Orientada a Objetos Introdução a POO Modelo de Objetos

25

ClassesClasses

• Aspectos de Linguagem

– Uma classe deve ser expressa como um texto escrito em determinada linguagem.

– Deve ser especificado:

• Atributos;

• Métodos; e

• Seqüência de ações que o computador deve executar para a realização de cada um dos métodos.

Programação Orientada a Objetos Prof. Marcos André Pisching

Page 26: Programação Orientada a Objetos Introdução a POO Modelo de ...frozza/2013.1/BSI12/BSI12-POOI-Aula006a... · Programação Orientada a Objetos Introdução a POO Modelo de Objetos

26

ClassesClasses

• O Objeto Programa

– Consiste em uma entidade que tem a função de resolver o problema.

– Um programa pode ser tratado como um objeto, cuja tarefa fundamental será a resolução do problema como um todo.

– Um programa pode ser modelado como um objeto, cujos atributos são outros objetos, os quais comunicam-se entre si, com o objetivo de resolver o problema.

Programação Orientada a Objetos Prof. Marcos André Pisching

Page 27: Programação Orientada a Objetos Introdução a POO Modelo de ...frozza/2013.1/BSI12/BSI12-POOI-Aula006a... · Programação Orientada a Objetos Introdução a POO Modelo de Objetos

27

ClassesClasses

• O Objeto Programa – Representação

UmPrograma

UmaInterface

UmAluno

Modelagem de um objeto programa

Escritório

Chefe

Secretária

Fax

Fax, transmita

Secretária,passe fax

Chefe, estousaindo

Chefe, chefie

Modelo de um objeto Escritório

Programação Orientada a Objetos Prof. Marcos André Pisching

Page 28: Programação Orientada a Objetos Introdução a POO Modelo de ...frozza/2013.1/BSI12/BSI12-POOI-Aula006a... · Programação Orientada a Objetos Introdução a POO Modelo de Objetos

28

ClassesClasses

• O Objeto Programa

– Abstração – aspectos importantes

• Um objeto pode ser constituído por outros objetos.

• Todo objeto constitui-se em uma instância de determinada classe.

• Um objeto é o resultado do que está definido na classe.

• Uma classe pode ser especializada em subclasse.

Programação Orientada a Objetos Prof. Marcos André Pisching

Page 29: Programação Orientada a Objetos Introdução a POO Modelo de ...frozza/2013.1/BSI12/BSI12-POOI-Aula006a... · Programação Orientada a Objetos Introdução a POO Modelo de Objetos

29

ClassesClasses

• Mensagem

– É a maneira pela qual os objetos se comunicam.

– Um objeto só executará determinado serviço se receber uma solicitação – que pode ser encaminhada por outro objeto.

– Para um objeto comunicar-se com outro é necessário o encaminhamento de uma mensagem (uma solicitação de serviço).

Programação Orientada a Objetos Prof. Marcos André Pisching

Page 30: Programação Orientada a Objetos Introdução a POO Modelo de ...frozza/2013.1/BSI12/BSI12-POOI-Aula006a... · Programação Orientada a Objetos Introdução a POO Modelo de Objetos

30

ClassesClasses

• Mensagem

– O envio de uma mensagem envolve três elementos:

• O objeto emissor – que envia a mensagem – Objeto Usuário;

• O objeto receptor – que recebe a mensagem – Objeto Executor;

• A definição do serviço a ser executado – Seletor.

Programação Orientada a Objetos Prof. Marcos André Pisching

Page 31: Programação Orientada a Objetos Introdução a POO Modelo de ...frozza/2013.1/BSI12/BSI12-POOI-Aula006a... · Programação Orientada a Objetos Introdução a POO Modelo de Objetos

31

ClassesClasses

• Mensagem

– Envio de uma mensagem:

• Deve ser especificado o nome do objeto executor e qual método a ser executado.

• Devem também ser especificados os recursos (parâmetros) necessários para a execução do método.

• Dependendo, também será necessário especificar o que o objeto executor deve retornar.

Programação Orientada a Objetos Prof. Marcos André Pisching

Page 32: Programação Orientada a Objetos Introdução a POO Modelo de ...frozza/2013.1/BSI12/BSI12-POOI-Aula006a... · Programação Orientada a Objetos Introdução a POO Modelo de Objetos

32

ClassesClasses

• Mensagem

• O chefe solicita que a secretária faça uma ligação telefônica, após a execução do serviço, esta deve informar ao chefe que a ligação está disponível.

Chefe Secretária

Fazer Ligação

Objeto emissor (usuário)

Objeto receptor (executor)Serviço solicitado

Programação Orientada a Objetos Prof. Marcos André Pisching

Page 33: Programação Orientada a Objetos Introdução a POO Modelo de ...frozza/2013.1/BSI12/BSI12-POOI-Aula006a... · Programação Orientada a Objetos Introdução a POO Modelo de Objetos

33

ClassesClasses

• Mensagem

Programação Orientada a Objetos Prof. Marcos André Pisching

Page 34: Programação Orientada a Objetos Introdução a POO Modelo de ...frozza/2013.1/BSI12/BSI12-POOI-Aula006a... · Programação Orientada a Objetos Introdução a POO Modelo de Objetos

34

ClassesClasses

• Mensagem – exemplos

– Objeto umProfessor solicita que o ojbeto umAluno, estude para a prova:

umAluno.estude;

– Um programa encaminha uma mensagem ao objeto umaPessoa, solicitando que este modifique o valor de sua idade

umaPessoa.recebaValorIdade(25);

Programação Orientada a Objetos Prof. Marcos André Pisching

Page 35: Programação Orientada a Objetos Introdução a POO Modelo de ...frozza/2013.1/BSI12/BSI12-POOI-Aula006a... · Programação Orientada a Objetos Introdução a POO Modelo de Objetos

35

ClassesClasses

• Mensagem – exemplos

– Objetos umHotel e umCliente – o objeto umHotel determina a conta de um cliente:

umHotel.determineConta(umCliente, valor);

Programação Orientada a Objetos Prof. Marcos André Pisching

Page 36: Programação Orientada a Objetos Introdução a POO Modelo de ...frozza/2013.1/BSI12/BSI12-POOI-Aula006a... · Programação Orientada a Objetos Introdução a POO Modelo de Objetos

36

ClassesClasses

• Mensagem – o processo de envio

– O objeto que encaminha a mensagem – objeto emissor ou usuário;

– O objeto que recebe a mensagem – objeto receptor ou executor;

– A especificação da mensagem – nome do método (seletor), juntamente com a especificação de argumentos quando necessário.

Programação Orientada a Objetos Prof. Marcos André Pisching

Page 37: Programação Orientada a Objetos Introdução a POO Modelo de ...frozza/2013.1/BSI12/BSI12-POOI-Aula006a... · Programação Orientada a Objetos Introdução a POO Modelo de Objetos

37

ClassesClasses

• Domínios

– Um programa pode ser modelado como um objeto composto por outros objetos.

– Os objetos que compõe um programa podem ser divididos em dois grupos:

• Aqueles que pertencem ao domínio do problema.

• Aqueles que pertencem ao domínio exclusivo da implementação em computador.

Programação Orientada a Objetos Prof. Marcos André Pisching

Page 38: Programação Orientada a Objetos Introdução a POO Modelo de ...frozza/2013.1/BSI12/BSI12-POOI-Aula006a... · Programação Orientada a Objetos Introdução a POO Modelo de Objetos

38

ClassesClasses

• Domínios

– Do problema

• Integra o problema, independentemente se o problema será solucionado em computador ou não.

• Ex.: objeto umAluno – é definido na análise, representando a abstração do aluno. O objeto existirá mesmo que o modelo em construção não seja para resolução em computador

Programação Orientada a Objetos Prof. Marcos André Pisching Programação Orientada a Objetos

Prof. Marcos André Pisching

Page 39: Programação Orientada a Objetos Introdução a POO Modelo de ...frozza/2013.1/BSI12/BSI12-POOI-Aula006a... · Programação Orientada a Objetos Introdução a POO Modelo de Objetos

39

ClassesClasses

• Domínios – Exclusivo da implementação em computador

• Existem só em função da construção do programa de computador.

• Ex.: durante a execução de um programa, a tarefa de comunicação com o usuário ficará a cargo de um determinado objeto, o qual é identificado normalmente como interface. A interface é um objeto que compõe o programa. Este objeto só existe em função da existência do programa. Portanto, isto é considerado como parte integrante do domínio exclusivo da implementação.

Programação Orientada a Objetos Prof. Marcos André Pisching

Page 40: Programação Orientada a Objetos Introdução a POO Modelo de ...frozza/2013.1/BSI12/BSI12-POOI-Aula006a... · Programação Orientada a Objetos Introdução a POO Modelo de Objetos

40

ClassesClasses

• Domínios

– Determinar quais objetos irão integrar o domínio do problema, requer do projetista profundo conhecimento do mesmo.

– Para um profissional da informática, dado a diversidade de problemas, esta tarefa não é muito simples.

– A resolução de um problema, exige que o mesmo seja devidamente conhecido, para que então possa ser resolvido.

Programação Orientada a Objetos Prof. Marcos André Pisching