Introdução a POO Modelo de Objetos Técnico em Informática, M.Sc.
O 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. 2
O 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 3
O 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. 4
O 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. 5
O 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. 6
O 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. 7
O 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; 8
O Modelo de Objetos Objetos Representação de um objeto Objeto tal 9
O Modelo de Objetos Objetos objeto empregado Objeto Empregado 10
O 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 11
O Modelo de Objetos Objetos Exemplo: objeto resultante da abstração de um aluno de uma disciplina UmAluno Atributos: - nome (José) Serviços: - matrícula (2399382-9) - nota parcial (8.0) - nota final (9.0) - estudar - assistir aula - realizar prova 12
O Modelo de Objetos Objetos Exemplo: uma cidade UmaCidade Atributos: - nome (Lages) - habitantes (185000) - área (500) - prefeito (Francisco Azevedo) - prefeitura (outro objeto) Serviços: - plano diretor (outro objeto) - mudar prefeito - alterar plano diretor - alterar o número de habitantes 13
O Modelo de Objetos Objetos Representação de um objeto em um modelo. UmaCidade Prefeitura Plano Diretor 14
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. 15
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. 16
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. 17
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. 18
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. 19
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. 20
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ço Executando Método correspondente especificado em sua classe 21
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. 22
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. 23
Representação de Classes Relógio formato:string cor:string peso:real apulseira:pulseira osponteiros:ponteiro apilha:pilha iniciarmarcacaohoras informarhoras corrigirhoras trocarpilhas Nome da Classe Especificação dos Atributos Obs.: Atributos que são objetos (apulseira, osponteiros e apilha), e suas respectivas classes Especificação dos Métodos 24
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. 25
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. 26
O Objeto Programa Representação Modelagem de um objeto programa UmPrograma UmaInterface UmAluno Fax Escritório Fax, transmita Chefe, chefie Secretária, passe fax Secretária Chefe Chefe, estou saindo Modelo de um objeto Escritório 27
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. 28
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). 29
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. 30
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. 31
Mensagem Classes Serviço solicitado Objeto receptor (executor) Chefe Fazer Ligação Secretária Objeto emissor (usuário) 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. 32
Mensagem 33
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); 34
Mensagem exemplos Objetos umhotel e umcliente o objeto umhotel determina a conta de um cliente: umhotel.determineconta(umcliente, valor); 35
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. 36
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. 37
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 Prof. Programação Marcos André Pisching Orientada a Objetos 38
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. 39
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. 40