321 likes | 422 Views
Núcleo de Computação Eletrônica Curso de Programação de Computadores Maio a Setembro/2000. Análise e Projeto de Sistemas. Conceitos de Orientação a Objetos. Renata Araujo Ricardo Storino. Objeto. Definição: Um conceito, uma abstração com significado específico em um contexto Propósito:
E N D
Núcleo de Computação Eletrônica Curso de Programação de Computadores Maio a Setembro/2000 Análise e Projeto de Sistemas Conceitos de Orientação a Objetos Renata Araujo Ricardo Storino
Objeto • Definição: • Um conceito, uma abstração com significado específico em um contexto • Propósito: • Entidade de software que reflete de alguma forma o mundo real • representar uma entidade do mundo real • Objetos possuem: • Identidade • Conjunto de características que determinam seu estado • Comportamento específico definido por um conjunto de ações
Exemplos Identidade:‘Beija-flor Biju’ Identidade: ‘Pessoa Mário’ Características: penas azuis bico fino vôo rápido Características: olhos pretos nasceu em 16/02/70 pesa 70kg mede 1,70m Comportamento: voar piar Comportamento: andar falar comer rir
Exemplos Identidade:‘Telefone da minha casa’ Características: azul número 576-0989 tone Identidade: ‘ônibus da escola’ Características: cor amarela placa LXY 7684 30 assentos a diesel Comportamento: tocar discar Comportamento: frear andar correr buzinar acelerar
Características (estado) Nome = Mário Sá Nasc = 16/02/70 Salário = 3.000 Mário Objeto Representação Identidade Funcionário_Mário InformarSalário CalcularIdade Comportamento Serviços, Interface ou protocolo
Objeto • Implementação • Interface Visível • Conjunto de operações • Parte encapsulada (escondida) • Implementação • Estrutura de dados – Estado • Implementação de suas operações - Métodos Estrutura de Dados (estado) Serviços, Interface ou protocolo
Objeto • Exemplo: • Funcionário Mário Sá InformarSalário Nome = Mário Sá Nasc = 16/02/70 Salário = 3.000 Estrutura de Dados CalcularIdade Serviços, Interface ou protocolo
Classe • Definição: • Abstrações utilizadas para representar um conjunto de objetos com características e comportamento idênticos • Uma classe pode ser vista como uma “fábrica de objetos” • Objetos de uma classe são denominados “instâncias” • Todos os objetos são instâncias de alguma classe • Todos os objetos de uma classe são idênticos no que diz respeito a sua interface e implementação
Exemplo Características: cor das penas formato do bico velocidade de vôo Comportamento: voar piar Pássaro Identidade:‘Beija-flor Biju’ Identidade:‘Minha pomba’ Características: cor daspenas: azuis formato do bico: fino velocidade de vôo: rápida Características: cor daspenas: cinza formato do bico: curto velocidade de vôo: média Comportamento: voar piar Comportamento: voar piar
Exemplo Características: cor número discagem Comportamento: tocar discar Telefone Identidade:‘Meu celular’ Identidade:‘Telefone da minha casa’ Características: cor:azul número: 576-0989 discagem: tone Características: cor: preta número: 99193467 discagem: tone Comportamento: tocar discar Comportamento: tocar discar
Funcionário_Mário Nome=Mário Sá Nasc=16/02/1970 Salário = 3.000 InformarSalário CalcularIdade Instâncias (objetos) Funcionário Nome Nasc Salário InformarSalário CalcularIdade Funcionário_Helena Nome=Helena Reis Nasc=28/01/1965 Salário = 4.000 InformarSalário CalcularIdade Classe Classe
Funcionário_Mário Nome=Mário Sá Nasc=16/02/1970 Salário = 3.000 InformarSalário CalcularIdade Funcionário Nome Nasc Salário InformarSalário CalcularIdade Funcionário_Helena Nome=Helena Reis Nasc=28/01/1965 Salário = 4.000 InformarSalário CalcularIdade Atributos • Descrevem as características das instâncias de uma classe • Seus valores definem o estado do objeto • O estado de um objeto pode mudar ao longo de sua existência • A identidade de um objeto, contudo, nunca muda
Funcionário_Mário Nome=Mário Sá Nasc=16/02/1970 Salário = 3.000 InformarSalário CalcularIdade Funcionário Nome Nasc Salário InformarSalário CalcularIdade Funcionário_Helena Nome=Helena Reis Nasc=28/01/1965 Salário = 4.000 InformarSalário CalcularIdade Serviços/Métodos • Representam o comportamento das instâncias de uma classe • Correspondem ao protocolo ou ações das instâncias de uma classe 4000 3000 Informar Salário?
Serviços/Métodos • Um método é a implementação de uma operação • Métodos só tem acesso aos dados da classe para a qual foram definidos • Os dados de uma classe só podem ser manipulados por métodos da classe (pelo princípio do encapsulamento) • Métodos possuem argumentos, variáveis locais , valor de retorno etc • Alguns métodos especiais: • Construtores – criam objetos de uma classe • Destrutores – destroem objetos de uma classe
Mensagens • Objetos são entidades independentes que necessitam se comunicar • Troca de mensagens como paradigma de comunicação entre objetos • Os dados de um objeto não podem ser manipulados ou vistos por outro objeto • Para obter informações ou ativar o comportamento de objetos, é preciso enviar-lhes mensagens • Objetos só reagem a mensagens que fazem parte das ações do protocolo de sua classe • Ao receber uma mensagem, o objeto busca em seu protocolo um método que irá responder a tal mensagem
Funcionário Nome Nasc Salário InformarSalário CalcularIdade Funcionário_Helena Nome=Helena Reis Nasc=28/01/1965 Salário = 4.000 InformarSalário CalcularIdade Funcionário_Helena Nome=Helena Reis Nasc=28/01/1965 Salário = 4.000 InformarSalário CalcularIdade Mensagens Informar Salário? 4000 ? Calcular Desconto? ERRO!
Polimorfismo • Possibilidade de enviar uma mesma mensagem para objetos de classes diferentes • Cada uma das classes implementa um método específico para responder à mensagem • Definição de protocolos comuns
Círculo Coordenada X Coordenada Y Raio CalcularÁrea Retângulo Coordenada X Coordenada Y Largura Altura CalcularÁrea CírculoXpto Coordenada X = 10 Coordenada Y = 15 Raio = 2 CalcularÁrea ReatânguloXpto Coordenada X = 10 Coordenada Y = 15 Largura = 3 Altura = 2 CalcularÁrea CalcularÁrea() { área = pi * Raio * Raio; retorna área ; } Polimorfismo CalcularÁrea() 12,68 CalcularÁrea() 6 CalcularÁrea() { área = Largura * Altura; retorna área; }
Herança • Conceito que expressa similaridades entre classes • Estabelecem relacionamentos de generalização-especialização (“é-um”) entre classes • Permitem estabelecer hierarquias de classificação
Herança • Animal • Anfíbio • ... • Sapo Ex. Sapo Cururu • Réptil • Mamífero • Roedor • Rato Ex. Mickey Mouse • ... • Ave • Vegetal • Sapo Cururu é uma instância de Sapo • Sapo Cururu “é um” Anfíbio • Sapo Cururu “é um” Animal • Mickey Mouse é uma instância de Rato • Mickey Mouse “é um” Roedor • Mickey Mouse “é um” Mamífero • Mickey Mouse “é um” Animal • Mickey Mouse mama • Sapo Cururu NÃO mama • Sapo Cururu e Mickey Mouse respiram e têm coração
Funcionário_Helena Nome=Helena Reis Nasc=28/01/1965 Salário = 4.000 InformarSalário CalcularIdade Funcionário Nome Nasc Salário InformarSalário CalcularIdade Gerente Nome Nasc Salário Projeto InformarProjeto InformarSalário CalcularIdade Gerente_Mário Nome=Mário Sá Nasc=16/02/1970 Salário = 3.000 InformarSalário CalcularIdade Herança Projeto = HelpCallCenter InformaProjeto
Funcionário_Helena Nome=Helena Reis Nasc=28/01/1965 Salário = 4.000 InformarSalário CalcularIdade Funcionário Nome Nasc Salário InformarSalário CalcularIdade Gerente Projeto InformarProjeto Gerente_Mário Nome=Mário Sá Nasc=16/02/1970 Salário = 3.000 Projeto = HelpCallCenter InformarSalário CalcularIdade InformaProjeto Herança Todo objeto Gerente “é um” objeto Funcionário Superclasse (características comuns) Subclasse (características específicas)
Funcionário Nome Nasc Salário InformarSalário CalcularIdade Gerente Projeto InformarProjeto InformarSalário Herança • Polimorfismo Suponha que gerentes recebam um adicional de 5% do salário por gerenciar projetos... InformarSalário: retorna o valor contido no atributo ‘Salário’ Embora o serviço tenha o mesmo nome, dependendo da classe, terá um comportamento distinto InformarSalário: retorna o valor contido no atributo ‘Salário’ adicionado com 5%
Funcionário_Helena Nome=Helena Reis Nasc=28/01/1965 Salário = 4.000 InformarSalário CalcularIdade Gerente_Mário Nome=Mário Sá Nasc=16/02/1970 Salário = 3.000 Projeto = HelpCallCenter InformarSalário CalcularIdade InformaProjeto Herança • Polimorfismo Informar Salário? 4000 3150 Informar Salário?
Herança • Herança Múltipla • Classes herdam características de várias classes • Exemplo: • Numa empresa administradora de cartões de crédito, alguns de seus funcionários são também seus clientes...
Cliente_Márcia Nome= Márcia Silva Endereço=Rua X, 201 Cartão = Credicard Débito = 1000 InformarCar~tão InformarDébito Funcionário_Cliente_Zé Nome= Zé Pereira Nasc=16/02/1970 Salário = 3.000 Endereço= Rua Y casa 8 Cartão = Visa Débito = 3000 Desconto = 10% InformarSalário CalcularIdade InformarCartão InformarDébito InfromarDesconto Funcionário_Helena Nome=Helena Reis Nasc=28/01/1965 Salário = 4.000 InformarSalário CalcularIdade Funcionário Nome Nasc Salário InformarSalário CalcularIdade Cliente Nome Endereço Cartão Débito InformarCartão InformarDébito Funcionário_Cliente Herança • Herança Múltipla Desconto InformarDesconto InformarDébito
Indivíduo Nome Endereço Nasc InformarNome Funcionário Salário InformarSalário CalcularIdade Cliente Cartão Débito InformarCartão InformarDébito Classe Abstrata • Representação de uma classe que não possui instâncias • Utilizada com objetivo de: • diminuir a complexidade • auxiliar a classificação e organização da modelagem Classe sem instâncias
Relacionamentos • Instâncias de classes podem manter relacionamentos com instâncias de outras classes • Associações simples, com significado não definido previamente • Associações com semântica pré-definida
Cardinalidade 1,N supervisiona Funcionário Supervisor 0,N Semântica Cardinalidade Relacionamentos • Associações Simples Um supervisor supervisiona 1 ou vários (1,N) Funcionários Um Funcionário é supervisionado por nenhum ou vários (0,N) Supervisores
Cardinalidade 1,N Funcionário Departamento 1 Semântica Cardinalidade Relacionamentos • Agregações • Semântica pré-definida de composição Um Departamento contém 1 ou vários (1,N) Funcionários Todos os Funcionários pertencem a um Departamento
Cardinalidade • 0..1 - nenhum ou apenas um • 0..N - nenhum ou vários • 1 - somente um • 1..N - vários