Programação Orientada a Objetos Introdução a POO
Modelo de Objetos Técnico em Informática
Prof. Marcos André Pisching, M.Sc.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
33
ClassesClasses
• Mensagem
Programação Orientada a Objetos Prof. Marcos André Pisching
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
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
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
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
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
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
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