ANÁLISE ORIENTADA À OBJETO Conceitos do Paradigma de Orientação a Objetos



Documentos relacionados
Bibliografia. Desenvolvimento Orientado a Objetos. Introdução. Bibliografia. O que você vê?

Paradigma Orientado a Objetos

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Programa do Módulo 2. Fundações do Modelo Objeto

Técnicas de Programação Avançada TCC Profs.: Anselmo Montenegro Conteúdo: Introdução à Orientação a Objetos

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos

Modelagem OO com UML. Vítor E. Silva Souza ~ vitorsouza

Orientação à Objetos. Aécio Costa

2 Diagrama de Caso de Uso

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

Modelagem de Processos. Prof.: Fernando Ascani

Programação Orientada a Objetos

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UML 01. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

3.1 Definições Uma classe é a descrição de um tipo de objeto.

Modelagemde Software Orientadaa Objetos com UML

Análise Orientada a Objetos

Histórico da Orientação a Objetos Ciclo de vida de Desenvolvimento de SW

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 17 PROFª BRUNO CALEGARO

Fundamentos de Banco de Dados e Modelagem de Dados

Wilson Moraes Góes. Novatec

UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC DCC Departamento de Ciência da Computação Joinville-SC

Introdução ao Paradigma Orientado a Objetos. Principais conceitos

UML Unified Modeling Language

Orientação a Objetos

Análise e Projeto Orientados por Objetos

Profº. Enrique Pimentel Leite de Oliveira

Unisant Anna Gestão Empresarial com ERP 2014 Modelagem de Sistemas - UML e MER

2 Engenharia de Software

Orientação a Objetos com Java

Modelo Entidade-Relacionamento

Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP

3. PARADIGMA ORIENTADO A OBJETOS

UML Aspectos de projetos em Diagramas de classes

UNIVERSIDADE FEDERAL DO PARANÁ. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o.

UML - Unified Modeling Language

Uma visão mais clara da UML Sumário

FUNDAMENTOS DA ORIENTAÇÃO A OBJETOS- REVISÃO

Felipe Denis M. de Oliveira. Fonte: Alice e Carlos Rodrigo (Internet)

O que é a UML? Introdução a UML. Objetivos da Modelagem. Modelos. A UML não é. Princípios da Modelagem. O que é um modelo?

Guia de utilização da notação BPMN

Diagrama de Classes. Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes.

Engenharia de Software Engenharia de Requisitos. Análise Orientada a Objetos Prof. Edison A M Morais prof@edison.eti.

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2

Sumário. Uma visão mais clara da UML

Introdução à Programação. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS

Introdução à Orientação a Objetos e UML

Engenharia de Software

MC536 Bancos de Dados: Teoria e Prática

Engenharia de Software I: Análise e Projeto de Software Usando UML

Diagrama de Classes. Diagrama de Classes. Diagramas de Classe. POST Criando Diagramas de Classe. Como construir (2)

Modelos de Sistema by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1.

Notas de Aula 04: Casos de uso de um sistema

Análise e Projeto Orientados por Objetos

FMR Faculdade Marechal Rondon Gestão de Sistemas de Informação Prof. Ms. Elvio Gilberto da Silva

Análise e Projeto Orientado a Objetos

Orientação a Objetos

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

Prof. Marcelo Henrique dos Santos

Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre César M de Oliveira

DESENVOLVIMENTO DE SOFTWARE. Introdução ao Visual Studio VB.Net. Programação Estruturada. Prof. Celso Candido ADS / REDES / ENGENHARIA

Programação Orientada a Objeto

Métodos de Construção de Software: Orientação a Objetos. Mestrado em Ciência da Computação 2008 Profa. Itana Gimenes

Programação de Computadores - I. Profª Beatriz Profº Israel

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

ANÁLISE E PROJETO ORIENTADO A OBJETOS. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

Tema 1: Modelo Estático

Engenharia de Software I

Programa Analítico. Introdução. Origens da programação Orientada a Objetos. Paradigma procedural. Paradigma Orientado a Objetos.

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 16 PROFª BRUNO CALEGARO

Orientação a Objeto e UML Questões 2014 Prof. Felipe Leite

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais

Mapa Mental de Engenharia de Software - Diagramas UML

Engenharia de Software III

ENGENHARIA DE SOFTWARE Prof. Ricardo Rodrigues Barcelar

Banco de Dados. Modelagem de Dados com MER. Prof. Walteno Martins Parreira Jr

Engenharia de Requisitos Estudo de Caso

A Linguagem de Modelagem Unificada (UML)

Desenho de Software. Desenho de Software 1

Modelagem de Casos de Uso (Parte 1)

do grego: arkhé (chefe ou mestre) + tékton (trabalhador ou construtor); tekhne arte ou habilidade;

PROGRAMANDO EM C# ORIENTADO A OBJETOS

ProgramaTchê Programação OO com PHP

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

Capítulo 11. Conceitos de Orientação a Objetos. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Questões de Concursos Públicos sobre Orientação a Objetos e UML

Padrões de projeto 1

Introduçãoa Engenhariade. Prof. Anderson Cavalcanti UFRN-CT-DCA

Especificação de Sistemas de Tempo-Real utilizando Orientação a Objetos

1 UML (UNIFIED MODELING LANGUAGE)

UML. Unified Modeling Language

4.2. UML Diagramas de classes

Análise de Sistemas. Visão Geral: Orientação a Objetos. Prof. José Honorato Ferreira Nunes honorato.nunes@bonfim.ifbaiano.edu.br

Unified Software Development Process

Transcrição:

ANÁLISE ORIENTADA À OBJETO Conceitos do Paradigma de Orientação a Objetos FMR Faculdade Marechal Rondon Gestão de Sistemas de Informação Prof. Ms. Elvio Gilberto da Silva http://www.elvio.pro.br elvio@fmr.edu.br AULA Nº 1 Objetivos Gerais: Proporcionar capacidades e habilidades para que o aluno compreenda os fundamentos da Tecnologia de Orientação à Objetos e seja capaz de modelar sistemas computacionais utilizando técnicas de análise e projeto orientados à objetos. Ementa: Propósito e evolução da OO; Benefícios da OO; Classes; Instâncias; Atributos e Métodos; Herança; Encapsulamento e Polimorfismo; Modelagem OO; UML Unified Modeling Language; Diagrama Use Case; Diagrama de Classes; Diagrama de Objetos; Diagrama de Interação Seqüência e Colaboração; Diagrama de Transição de Estados; Diagrama de Componentes; Diagrama de Implantação.

Bibliográfica Básica: RUMBAUGH, J.; BIAHA, M.; PREMERLANI, W.; EDDY, F.; LORENSEN, W. Modelagem e projetos baseados em objetos. Rio de Janeiro: Campus, 1994. 652 p. Metodologia: Aulas expositivas teóricas e práticas; Trabalhos práticos de pesquisa; Exercícios de fixação. Avaliação: Provas regimentais; Apresentação de Trabalhos Práticos.

Paradigma de Orientação a Objetos A OO Surgiu na tentativa de solucionar problemas Complexos existentes no desenvolvimento de Software e resolvê-los de maneira com baixo custo de desenvolvimento e manutenção Mundo Real é formado por objetos que se interagem Representar esses objetos em um software é mais natural e permanente do que representar a sua funcionalidade (decomposição funcional), pois essa é mutável Mundo Computacional Mundo Real ESPAÇO DE PROBLEMAS Gap Semântico ESPAÇO DE SOLUÇÕES Aspectos mais importantes do mundo real para fins de representação no computador

Gap Semântico Diferença entre Espaço de Problemas e Soluções Todo software representa um Modelo de um problema do mundo real (Espaço de Soluções) A construção de um software envolve um processo de mapeamento de objetos pertencentes ao espaço de problemas para o espaço de soluções, de tal maneira que operações sobre essas representações abstratas correspondam a operações do mundo real Projetista cria algoritmos que quando executados no computador produzirão resultados, que podem ser mapeados fisicamente para alguma ação do mundo real ou examinados/interpretados por pessoas Gap Semântico EVIDENTE:quanto mais próximo (conceitualmente) estiver o espaço de soluções do espaço de problemas, mais fácil será: o desenvolvimento da aplicação assegurar a compreensão, confiabilidade e manutenção da aplicação Objetivo do Paradigma de Orientação a Objetos DIMINUIR O GAP SEMÂNTICO

Mundo Computacional Mundo Real ESPAÇO DE PROBLEMAS ESPAÇO DE SOLUÇÕES Mapeamento Processo de Identificação de Abstrações Se essas abstrações não tiverem uma expressão direta (ou próxima) do mundo computacional, a complexidade da solução será aumentada Modelagem Conceitual Tarefa mais importante de um processo de desenvolvimento de software realiza-se a análise do domínio da aplicação e a modelagem das entidades e fenômenos desse domínio que o projetista considera importante, independentemente da implementação A tarefa de modelagem conceitual envolve dois mecanismos: Abstração Representação

Modelagem Conceitual Operação mental para observar um domínio e capturar sua estrutura ABSTRAÇÃO Refere-se às convenções de representação REPRESENTAÇÃO Entidade Observada Entidade Representada Notação gráfica, linguagem de programação Avião Abstração Mecanismo utilizado na análise de um domínio Através dela, o indivíduo observa a realidade e dela abstrai entidades, ações, etc. consideradas essenciais para uma aplicação, excluindo todos os aspectos julgados irrelevantes Exemplo: Fotografia por satélite (imagem da realidade), despida de alguns aspectos (por exemplo, cor, movimento) Da foto, pode-se abstrair um mapa, que elimina diversas propriedades da foto (detalhes particulares de um edifício ou praça) O mapa pode ser a base para abstrair um grafo

Abstração a beleza está nos olhos de quem a vê O resultado de uma operação mental de abstração depende não tanto do fenômeno observado, mas do interesse do observador Abstração a beleza está nos olhos de quem a vê Diferentes abstrações a partir de um mesmo objeto do mundo real Maça Peso cor da casca format CATEGORIA Receita AÇÃO I, II, 3 Cardinalidade do conjunto ATRIBUTO

Operações de Abstração relevantes para a modelagem conceitual Classificação (Instanciação) categorização dos objetos em grupos e/ou classes (categoria), com base em algum conjunto de propriedades comuns Generalização (Especialização) a partir de duas categorias abstrai-se uma categoria mais genérica sub-categorias satisfazem todas as propriedades das categorias de que elas constituem especializações deve existir pelo menos uma propriedade que distingue duas categorias especializadas Operações de Abstração relevantes para a modelagem conceitual Agregação (Decomposição) composição de uma nova categoria como um agregado de categorias pré-existentes instâncias de uma categoria (Estudante) são compostas por instâncias de outras categorias (Nome, Endereço)

Classificação/Instanciação CATEGORIA Estudante de Graduação CLASSIFICAÇÃO INSTANCIAÇÃO José Maria INDIVÍDUO (Objeto) Generalização/Especialização CATEGORIA Atributos sangue quente vertebrado vivíparo Mamífero GENERALIZAÇÃO Atributos Habitat: mar Tempo médio de vida: 200 anos Baleia CATEGORIA ESPECIALIZAÇÃO (herança)

Paradigma de Orientação a Objetos O desenvolvimento orientado a objetos evoluiu no sentido PROGRAMAÇÃO ANÁLISE Conceitos desse paradigma foram introduzidos com o surgimento da linguagem Smalltalk Em seguida, surgiram métodos de projeto para dar suporte à implementação de sistemas orientados a objetos Recentemente, propostas de métodos para análise e projeto vêm emergindo Histórico A OO surgiu no final da década de 60, quando dois cientistas dinamarqueses criaram a linguagem Simula (Simulation Language) 1967 - Linguagem de Programação Simula-67- conceitos de classe e herança O termo Programação Orientada a Objeto (POO) é introduzido com a linguagem Smalltalk (1983) FINS DOS ANOS 80 Paradigma de Orientação a Objetos abordagem poderosa e prática para o desenvolvimento de software

Histórico Linguagens híbridas: C++ (1986), Object-Pascal (1986) Métodos de Análise e Projeto OO CRC (Class Responsability Collaborator, Beecke e Cunningham, 1989) OOA (Object Oriented Analysis, Coad e Yourdon, 1990) Booch (1991) OMT (Object Modeling Technique, Rumbaugh, 1991) Objectory (Jacobson, 1992) Fusion (1994) Unified Modeling Language (UML, 1997) Conceitos de OO Modelo de Objetos Objeto Mensagem Método Classe Atributo Protocolo Classificação Herança Encapsulamento / Ocultamento de Informação Polimorfismo

Objeto Tudo em Orientação a Objeto é OBJETO Objeto, no mundo físico, é tipicamente um produtor e consumidor de itens de informação máquina, comandos, arquivos, pessoas, sinais Definição (mundo do sofware) Qualquer coisa, real ou abstrata, a respeito da qual armazenamos dados e métodos que os manipulam Martin, Odell (1995) Abstração de uma entidade do mundo real de modo que essa entidade possue várias características Exemplo: objetos cachorro e casa. Raça cor pedigree CACHORRO CASA

OBJETO: Entidade independente, composta por um conjunto de elementos que a caracterizam (domínio) e as ações que agem sobre esse domínio (operações) OBJETO Visão implementacional (Takahashi, 1990) entidade composta por: ESTADO INTERNO: é onde os valores podem ser armazenados e modificados ao longo da vida do objeto, caracterizando seu domínio COMPORTAMENTO: é o conjunto de ações pré-definidas (denominadas métodos) através das quais o objeto responderá a demanda de processamento por parte de outros objetos Objeto é algo DINÂMICO: é criado por alguém, tem uma vida, e morre ou é morto por alguém Pode ter vida temporária (como a execução de um programa) ou persistente (persistirá até que seu desaparecimento seja explicitamente ordenado). Abstração Mapeamento Implementação ABSTRAÇÃO DOMÍNIO + OPERAÇÕES IMPLEMENTAÇÃO ATRIBUTOS (Dados) + MÉTODOS (Procedimentos) <Nome do Objeto> <Atributos> <Métodos>

Objeto Resumindo: Pacote de informações (atributos) e a descrição de suas operações (métodos), de modo que elas são intrínsecas ao seu domínio e este é formado pelos elementos que o caracterizam Exemplo: Objeto: Pessoa Objeto: Pessoa Atributos: Nome, Data de Nascimento, Cor Nome Métodos: Acordar, Comer, Beber Data Nasc. Cor Dormir Acordar Comer Beber Dormir Objeto = Atributos (Dados) + Métodos (Funcionalidade) + Encapsulamento

Exemplos de Objeto Uma fatura Uma organização Uma tela com a qual o usuário interage Um desenho de engenheiro Um avião Um vôo de avião Uma reserva num avião Um processo de atendimento de pedidos Um computador Um ser humano neurótico pode ser estereotipado como um objeto: possui memória em que valores podem ser armazenados e que condicionarão seu comportamento Atributos Representam um conjunto de informações, ou seja, elementos de dados que caracterizam um objeto Descrevem as informações que ficam escondidas em um objeto para serem exclusivamente manipulado pelas operações daquele objeto São variáveis que definem o estado de um objeto, ou seja, são entidades que caracterizam os objetos Cada objeto possue seu próprio conjunto de atributos Exemplos: Objeto Pessoa Atributos: Nome, Cor, Data de Nascimento Objeto Empregado Atributos: No do empregado, nome, nome do departamento, salário, endereço, dependentes

Dicionário Objeto do mundo Real Objeto: Dicionário Estrutura de Dados Adicionar Palavra Eliminar Palavra Encontrar Palavra Imprimir definição Atributo Um valor armazenado pelos objetos da classe PESSOA: nome, idade, peso, cor CARRO: cor, peso, ano, modelo Cada atributo possui um valor para cada instância João tem 24 anos e Maria tem 40 Não se deve explicitar identificadores (características de programação - não têm significado real)

Classificação Categorização em Classes Quando estamos modelando um domínio, observamos que há várias entidades similares que podem ser abstraídas em um conceito único que engloba esta similaridade Operação de abstração das Similaridades O POO incorporou esta operação através da abstração dos atributos e dos métodos que caracterizam objetos semelhantes, especificando-os na CLASSE Exemplo: Classificação de espécies em Zoologia

Classe Objeto: abstração de uma entidade do mundo real, através dos atributos e operações Classe: abstração de um conjunto de objetos similares do mundo real Agrupamento de objetos similares. Descreve a estrutura de dados, e o comportamento de objetos similares Todo objeto é uma instância de uma Classe Todas as instâncias de uma classe têm valores próprios para os atributos especificados na classe Os objetos representados por determinada classe diferenciam-se entre si pelos valores de seus atributos Sistema puramente OO, Classe é também um Objeto Classe Conjunto de objetos que possuem propriedades semelhantes (ATRIBUTOS), o mesmo comportamento (MÉTODOS), os mesmos relacionamentos com outros objetos e a mesma semântica PESSOA, CARRO, CASA, VEÍCULO EMPRESA, PAÍS, SERES HUMANOS, HOMENS, MULHERES, MEIO DE TRANSPORTE

Classe Similar a um TAD (Tipo-Abstrato-de-Dados): pode ser usado como base para a criação de objetos que sejam entidades executáveis com atributos e operações (métodos) da classe. Sua especificação é uma especificação da interface na qual as partes visíveis da entidade são expostas. Os objetos criados podem ter outros atributos e procedimentos privativos não aparecem na especificação Livro Bíblia Relatório Dicionário

Generalização Reformar Limpar Pintar Mobiliar CASA Portas Quartos Salas Localização Cozinha Telhado (Superclasse) PRAIA (Subclasse) FAVELA MANSÃO Limpar Piscina Contratar Criadagem Piscina Quadras Especialização Animal superclasse Selvagem Doméstico subclasse Hierarquia de Classes Gato Cão De Raça Vira-Lata Objeto Rex instância da classe Vira-Lata Rex

Seres Humanos Nome Data_Nascimento RG Homens Certif_Reservista Mulher Data_Último_Parto Veículo Veículo de Rodas Veículo à Motor Veículo Aéreo Bicicleta Caminhão Vapor Avião Planador Caminhão VW Caminhão Ford Caminhão GM

Herança Mecanismo que permite definir uma nova classe (subclasse) a partir de uma classe já existente (super-classe) Ao se estabelecer uma Especialização (subclasse) de uma classe, a subclasse herda as características comuns da super-classe, isto é, a especificação dos atributos e dos métodos da super-classe passam a fazer parte da especificação dos atributos e dos métodos da subclasse A subclasse pode adicionar novos métodos, como também reescrever métodos herdados Habilidade de um objeto derivar seus atributos (dados) e métodos (funcionalidade) automaticamente de outro objeto Herança Classes podem ser construídas a partir de outras já existentes; facilita extensibilidade Quando uma mensagem é enviada para um objeto A procura do método correspondente começa pela classe do objeto Se o método não for encontrado, a procura continua na superclasse A Herança pode ser de dois tipos: Herança Simples: quando uma classe é subclasse de somente uma superclasse Herança Múltipla: quando uma classe é subclasse de várias superclasses e conseqüentemente herda as características de cada uma delas

Mensagem É o mecanismo através do qual os objetos se comunicam, invocando as operações desejadas Especificação de uma operação do objeto É composta por Seletor: nome simbólico que descreve o tipo da operação descreve O QUE o objeto que envia quer que seja invocado, não como deveria ser invocado o objeto recebedor da mensagem contém a descrição de COMO a operação deveria ser executada Parâmetros: argumentos que uma mensagem pode conter que faz parte da operação e requer uma ordem única. Pessoa Coma isto logo! Animal Comer Objeto que envia EMISSOR Objeto: Animal Mensagem: COMA ISTO LOGO Seletor: COMA Parâmetros: LOGO Determina o que deve ser manipulado e aguarda o retorno do objeto que foi ativado Objeto que recebe RECEPTOR Determina como manipular

Mensagem Um objeto (Emissor) envia uma mensagem a outro (Receptor) que executará o serviço Métodos são invocados por Mensagens Exemplo A chamada de um procedimento/função em LP é uma aproximação inicial de uma mensagem, como em P(10,20), onde P é o seletor e os valores 10 e 20 são os parâmetros Diferença: a ação da mensagem a ser ativada depende essencialmente do objeto que receber a mensagem Origem: LP Smalltalk Método Quando um objeto é mapeado dentro do domínio do software, os processos que podem mudar a sua estrutura de dados são denominados Operações ou Métodos Métodos são invocados por Mensagens Cada objeto possui seu próprio conjunto de métodos Definições: São procedimentos definidos e declarados que atuam sobre um objeto ou sobre uma classe de objetos Descrição de uma sequência de ações a serem executadas por um objeto Através dos métodos que especifica-se a um objeto COMO FAZER alguma coisa São intrínsecos aos objetos e não podem ser separados.

Interface (Protocolo) Objetos se comunicam através de Mensagens, que invocam os Métodos desejados Parte Privada do Objeto (Visão Interna) Métodos Atributos Parte Compartilhada do Objeto ou Interface corresponde à parte externa do objeto, isto é, àquela que é vista por outros objetos com a finalidade de invocar os métodos que o objeto realiza agrupa um conjunto de mensagens que o objeto pode responder as mensagens especificam quais operações sobre o objeto podem ser realizadas, mas não como a operação será executada. Estrutura de um Objeto (classe) <Nome do Objeto> <Métodos> Interface <Atributos> Parte Privada <Métodos>

Ocultamento de Informação (Information Hiding) Característica que visa esconder detalhes de implementação É alcançado em OO, visto que o objeto, quando implementado, possui uma parte privada (atributos e métodos) e uma parte compartilhada (interface) Detalhes de implementação ficam escondidos na parte privada Programadores podem introduzir mudanças na implementação de um método sem afetar o comportamento externo desse método. Encapsulamento de Dados Objetos encapsulam suas estruturas de dados (atributos) Os atributos de um objeto só podem ser manipulados pelos próprios métodos do objeto Restringe a visibilidade do objeto mas facilita o reuso Os DADOS e os MÉTODOS são empacotados sob um nome e podem ser reusados como uma especificação ou componente de programa.

Polimorfismo Ao receber uma mensagem para efetuar uma Operação, é o objeto quem determina como a operação deve ser efetuada, pois ele tem o comportamento próprio Como a responsabilidade é do Receptor e não do Emissor, pode acontecer que uma mesma mensagem ative métodos diferentes, dependendo da classe de objeto para onde é enviada a mensagem Permite a criação de várias classes com interfaces idênticas, porém objetos e implementações diferentes Capacidade de uma mensagem ser executada de acordo com as características do objeto que está recebendo o pedido de execução do serviço. Analogia dos conceitos principais no POO e no paradigma tradicional de programação OO Classes Objetos Métodos Mensagens Convencional Tipo de Dados Abstratos Variáveis Procedures, Funções Chamadas de Funções

Características Exemplo de objeto do mundo real a coisa em que você está sentado agora Cadeira É membro - (instância) de uma classe maior de objetos Mobiliário Peso Cor Classe Mobiliário Dimensões Localização Custo herda Atributos (Propriedades) Cadeira

Peso Cor Classe Mobiliário Comprado Dimensões Localização Vendido Modificado Custo Atributos (Propriedades) Cadeira herda Operações (Serviços e Métodos) O Objeto Cadeira é um membro (INSTÂNCIA) de uma CLASSE maior de objetos MOBILIÁRIO CLASSE de objetos descreve um conjunto de objetos que possuem propriedades semelhantes (ATRIBUTOS) mesmo comportamento (MÉTODOS) mesmos relacionamentos com outros objetos mesma semântica\ Atributos GENÉRICOS da classe MOBILIÁRIO custo, dimensões, peso, localização, cor Atributos se aplicam a todos os objetos da classe MOBILIÁRIO: mesa, cadeira, sofá, armário.

Uma vez que o objeto CADEIRA é um membro da classe MOBILIÁRIO, HERDA todos os atributos definidos para a classe Todo objeto da classe MOBILIÁRIO pode ser manipulado de diversas maneiras (OPERAÇÕES) comprado vendido, pesado modificado (pintar de roxo, serrar uma perna) Cada uma dessas operações (SERVIÇOS ou MÉTODOS) modificará um ou mais atributos do objeto Classe: Mobiliário Custo Dimensões Peso Cor Localização Comprar Vender Pesar Modificar O objeto herda todos os atributos e as operações da classe Classe: mesa Custo Dimensões Peso Cor Localização Comprar Vender Pesar Modificar Classe: Cadeira Custo Dimensões Peso Cor Localização Comprar Vender Pesar Modificar

Exercício Observe o exemplo: Classe Calçados: { atributos: tamanho(); cor(); métodos: proteger(); Objetos: sapato:calçados; tênis:calçados; chinelo:calçados; Instancia: sapato.tamanho=40; tênis.proteger=sim; chinelo.cor=azul; } Seguindo o exemplo ao lado, dê Os atributos; Os métodos; Os Objetos e A instanciação. das seguintes Classes: Pessoa; Veículos; Alimentação; Informática; Comunicação e Animais.