Baixe o app para aproveitar ainda mais
Prévia do material em texto
Ana´lise e Projeto de Sistemas Prof. Anderson Luiz Menezes Ana´lise Orientada a Objetos FAETERJ-Paracambi Ana´lise e Projeto de Sistemas To´picos 1 Introduc¸a˜o 2 Conceitos Ba´sicos FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Histo´rico e Fundamentos Ana´lise Orientada a Objetos - Objetivos Relembrar a orientac¸a˜o a objetos Relembrar os conceitos que permeiam este paradigma de desenvolvimento de sistemas objetos classes mensagens abstrac¸a˜o encapsulamento heranc¸a polimorfismo Compreender o uso da UML na modelagem de sistemas orientados a objetos FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Histo´rico e Fundamentos Ana´lise Orientada a Objetos O que sa˜o Sistemas Orientados a Objetos? FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Histo´rico e Fundamentos Ana´lise Orientada a Objetos - Breve Histo´rico A ideia comec¸ou a amadurecer no fim da de´cada de 80 Na de´cada de 90 verificou-se o aumento do interesse por parte de diversos autores Hoje em dia ja´ e´ considerado um paradigma consistente A AOO esta´ fortalecida como me´todo de ana´lise e apresenta certa padronizac¸a˜o (UML) FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Histo´rico e Fundamentos Ana´lise Orientada a Objetos A AOO baseia-se em conceitos simples que o homem adquire desde a infaˆncia, como objetos e atributos, classes e membros, todo e partes do todo. FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Histo´rico e Fundamentos Ana´lise Orientada a Objetos O que muda? Muda o enfoque! FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Histo´rico e Fundamentos Ana´lise Orientada a Objetos - Enfoque Enfoque tradicional: compreensa˜o de um sistema como um conjunto de programas que executam processos sobre os dados. Enfoque AOO: o sistema e´ uma coletaˆnea de objetos que interagem entre si, com caracterı´sticas pro´prias, representadas por atributos (dados) e operac¸o˜es (processos). FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Histo´rico e Fundamentos Ana´lise Orientada a Objetos - Enfoque FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Histo´rico e Fundamentos Ana´lise Orientada a Objetos - Fundamentos Os me´todos de OO apresentam uma visa˜o mais integrada das func¸o˜es e dados O sistema OO e´ estruturado atrave´s de objetos que contemplam func¸o˜es + dados Resultados: Produtos mais esta´veis e de melhor qualidade Processo de desenvolvimento que permite melhor entendimento do sistema e do seu ambiente melhor entendimento do domı´nio da aplicac¸a˜o maior independeˆncia da implementac¸a˜o ate´ esta´gios mais avanc¸ados FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Histo´rico e Fundamentos Ana´lise Orientada a Objetos - Fundamentos Quando usar a Ana´lise OO? Projetos de grande porte - confinamento de informac¸a˜o Requisitos na˜o completamente fechados - modelos relativamente esta´veis Requisitos vagos, incompletos ou inconsistentes - recursos para identificar as informac¸o˜es Novas aplicac¸o˜es - abordagem sistema´tica para melhor entendimento Equipe com especialidades diversas - linguagem comum Sistemas crı´ticos - definic¸a˜o mais sistema´tica da lo´gica FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Histo´rico e Fundamentos Ana´lise Orientada a Objetos Por que a manutenc¸a˜o de sistemas costuma ser difı´cil? Todas as func¸o˜es que manipulam os dados devem conhecer sua forma de armazenamento Uma modificac¸a˜o da estrutura de dados afeta todas as func¸o˜es que a manipulam A descric¸a˜o de sistema em termos de o que fazer acaba sendo transformada em como fazer Mudanc¸as no comportamento do sistema se propaga atrave´s das func¸o˜es FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Histo´rico e Fundamentos Ana´lise Orientada a Objetos Como esse cena´rio se altera com a OO? Quando bem modelado, um sistema OO e´ estruturado atrave´s de objetos do domı´nio do problema O sistema pode ser mantido o mais pro´ximo possı´vel de uma visa˜o conceitual do mundo real Ha´ mais transpareˆncia na passagem da fase de modelagem para a fase de construc¸a˜o, na˜o exigindo reorganizac¸a˜o do modelo Os objetos do domı´nio do problema sa˜o mais esta´veis Quando necessa´rias, as mudanc¸as ficam contidas apenas nesses objetos Na˜o se verifica, necessariamente, a propagac¸a˜o de alterac¸o˜es em func¸o˜es e dados FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Histo´rico e Fundamentos Ana´lise Orientada a Objetos Importante! Uma boa modelagem do sistema atrave´s de objetos exige um bom conhecimento do domı´nio do problema. FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Histo´rico e Fundamentos Ana´lise Orientada a Objetos - Caracterı´sticas Objetos sa˜o abstrac¸o˜es de entidades do mundo real (ou de algum sistema) que se auto-gerenciam Objetos sa˜o independentes e encapsulam suas representac¸o˜es de estado e de informac¸o˜es A funcionalidade de um sistema e´ expressa em termos de servic¸os que os objetos prestam A´reas de dados compartilhadas sa˜o eliminadas Objetos se comunicam atrave´s de mensagens Objetos podem ser distribuı´dos Objetos podem ser executados sequencialmente ou de forma paralela FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Histo´rico e Fundamentos Ana´lise Orientada a Objetos - Desenvolvimento O Projeto, a Ana´lise e a Programac¸a˜o sa˜o atividades distintas Ana´lise OO: se preocupa com a modelagem dos objetos para o domı´nio da aplicac¸a˜o Projeto OO: se preocupa com o desenvolvimento de um modelo de sistema que implemente os requisitos definidos pela AOO Programac¸a˜o OO: se preocupa com a implementac¸a˜o do Projeto OO utilizando uma linguagem de programac¸a˜o OO FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Tipos Abstratos de Dados O comportamento dos objetos e´ definido pelo seu tipo abstrato A descric¸a˜o de um TAD deve compreender: Interface do TAD Comportamento do TAD Um tipo abstrato de dados e´ uma classe de estrutura de dados descrita por uma interface externa: Lista de servic¸os disponı´veis Propriedades destes servic¸os FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Tipos Abstratos de Dados A representac¸a˜o das estruturas de dados do TAD fica completamente encapsulada A representac¸a˜o das estruturas de dados do TAD na˜o faz parte de sua definic¸a˜o FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Sistemas OO As classes formam o nu´cleo de um programa OO Os objetos proveˆem o comportamento, devendo ser criados apropriadamente Cada objeto implementa uma parte do comportamento geral da aplicac¸a˜o: Objetos de computac¸a˜o (transientes) Objetos de banco de dados (persistentes) Objetos de interface Objetos de GUI O programa principal fica reduzido a` func¸a˜o de criar e iniciar objetos principais e iniciar a computac¸a˜o FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Encapsulamento Encapsulamento consiste em ocultar o funcionamento interno de uma classeO acesso aos servic¸os oferecidos e´ feito atrave´s de seus me´todos O funcionamento interno da classe se torna transparente FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Classes Classe e´ um conceito de software que descreve a implementac¸a˜o de um TAD Uma classe define: A estrutura de dados que representa o TAD A implementac¸a˜o das operac¸o˜es, me´todos, sobre esta estrutura Uma interface explicita Classe e´ apenas um molde para criac¸a˜o de TAD Uma classe e´ a representac¸a˜o de um conjunto de objetos que compartilham os mesmos atributos, operac¸o˜es, relacionamentos e semaˆntica FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Classes Classes suportam os conceitos de: Abstrac¸a˜o Encapsulamento Protec¸a˜o de dados Polimorfismo Hierarquia FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Classes A abstrac¸a˜o esta´ relacionada aos objetivos sobre o que se abstrai. Ex.: TAD Pessoa FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Classes Encapsular consiste em incluir, proteger em uma ca´psula Encapsular e´ ocultar do usua´rio o funcionamento interno de uma classe FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Classes Protec¸a˜o de dados visa garantir o acesso apenas sobre operac¸o˜es e atributos disponibilizados pela interface da classe Modificadores de acesso: Acesso pu´blico (public) Acesso protegido (protected) Acesso privado (private) FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Classes Acesso pu´blico: Visı´vel por todos os pacotes Acesso protegido: Visı´vel somente por classes e subclasses do mesmo pacote e sub-pacotes Acesso privado: Visı´vel somente pela pro´pria classe FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Classes Todos os atributos e operac¸o˜es de uma classe podem ser acessados pelas operac¸o˜es da mesma classe O acesso aos atributos e´, em geral, privado ou protegido O acesso a`s operac¸o˜es que fazem parte da interface da classe e´ pu´blico FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Classes Um atributo e´ uma propriedade de uma classe Ele descreve um conjunto de valores que as instaˆncias da classe (objetos) podem atribuir a essa propriedade Em geral, representa uma propriedade persistida Uma classe pode ter um nu´mero qualquer de atributos, inclusive zero FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Classes Um atributo derivado e´ um atributo cujo valor pode ser calculado baseado no valor de outro(s) atributo(s) Geralmente na˜o e´ um atributo persistido E´ uma decisa˜o de performance x memo´ria requerida FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Classes Um atributo esta´tico e´ um atributo cujo valor e´ compartilhado por todas as instaˆncias da classe O acesso a um atributo esta´tico e´ independente do objeto FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Classes Um atributo na˜o esta´tico possui um valor u´nico para cada objeto O acesso a um atributo na˜o esta´tico e´ dependente do objeto FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Classes Uma operac¸a˜o e´ um servic¸o que pode ser requisitado por qualquer objeto da classe para obter um comportamento Uma classe pode ter um nu´mero qualquer de operac¸o˜es, inclusive zero FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Classes Uma operac¸a˜o abstrata e´ aquela que na˜o possui um me´todo que a implemente na classe Uma classe que possui uma ou mais operac¸o˜es abstratas e´ dita classe abstrata FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Classes Uma operac¸a˜o esta´tica e´ independente de objeto e acessa apenas atributos esta´ticos O acesso a operac¸o˜es esta´ticas e´ independente de objeto FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Classes As classes, no contexto dos sistemas, na˜o trabalham sozinhas As classes colaboram umas com as outras atrave´s de relacionamentos O comportamento do sistema e´ obtido atrave´s da interac¸a˜o entre objetos FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Classes - Tipos de Estruturas Classe Abstrata E´ uma classe que na˜o possui instaˆncias diretas Apenas suas classes descendentes possuem Sa˜o u´teis para definir uma estrutura comum a va´rias classes Facilitam a reutilizac¸a˜o de co´digo Uma operac¸a˜o abstrata numa classe define apenas a sua forma, na˜o a sua implementac¸a˜o FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Classes - Tipos de Estruturas Interfaces O propo´sito de uma interface e´ encapsular um conjunto de operac¸o˜es oferecidas pela classe E´ comum apresentarmos na interface apenas parte das operac¸o˜es A interface especifica a assinatura destas operac¸o˜es FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Classes Uma classe e´ a representac¸a˜o de um conjunto de objetos que compartilham os mesmos atributos, operac¸o˜es, relacionamentos e semaˆntica. FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Objetos Objetos sa˜o conceitos de software que modelam entidades da aplicac¸a˜o Objetos sa˜o abstrac¸o˜es de dados Objetos teˆm estado (estrutura interna) Objetos sa˜o manipulados apenas por operac¸o˜es Objetos sa˜o instaˆncias de classes FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Objetos Os objetos proveˆem o comportamento, devendo ser criados apropriadamente Cada objeto representa uma parte do comportamento geral da aplicac¸a˜o Objetos de computac¸a˜o (transientes) Objetos de banco de dados (persistentes) Objetos de interface Objetos de GUI FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Relacionamentos Classes isoladas na˜o compo˜em um Sistema OO A interac¸a˜o entre os objetos define o comportamento de um Sistema OO Interac¸a˜o entre objetos envolve a comunicac¸a˜o Classes devem definir como e´ feita a interac¸a˜o. Como? Atrave´s de Relacionamentos FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Relacionamentos As classes colaboram umas com as outras atrave´sde relacionamentos O comportamento do sistema e´ obtido atrave´s da interac¸a˜o entre objetos Relacionamentos Associac¸o˜es Agregac¸o˜es e Composic¸o˜es Heranc¸a Dependeˆncia FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Associac¸o˜es Sa˜o os relacionamentos mais ba´sicos entre classes/objetos Conceitualmente associac¸o˜es representam relac¸o˜es conceituais entre classes Exemplo: Um pessoa trabalha para uma companhia A companhia tem va´rios escrito´rios FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Associac¸o˜es Relacionamento entre duas classes: associac¸a˜o bina´ria Relacionamento entre treˆs ou mais classes: associac¸a˜o n-a´ria Associac¸o˜es reflexivas: sa˜o associac¸o˜es de uma classe com ela pro´pria FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Agregac¸o˜es Agregac¸a˜o e´ uma forma especial de associac¸a˜o onde o todo esta´ relacionado a`s suas partes A frase “parte de” e´ utilizada para descrever o relacionamento: Grupo de usua´rios x Usua´rio FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Agregac¸o˜es Uma agregac¸a˜o representa uma propriedade fraca, pois uma classe parte pode estar contida em outras agregac¸o˜es O todo e´ chamado de classe forte e a parte de classe fraca Os ciclos de vida de objetos todo e parte sa˜o independentes, ou seja, um na˜o depende do outro para existir Agregac¸o˜es reflexivas sa˜o agregac¸o˜es de uma classe com ela pro´pria FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Composic¸o˜es Composic¸a˜o e´ uma forma especial de agregac¸a˜o onde o todo esta´ relacionado a`s suas partes A frase “e´ composto por” e´ utilizada para descrever o relacionamento: Teclado x Boto˜es O todo e´ chamado de classe forte e a parte de classe fraca Os ciclos de vida de objetos todo e parte sa˜o dependentes, ou seja, a parte depende do todo para existir FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Composic¸o˜es Agregac¸a˜o por composic¸a˜o indica ciclos de vida dependentes criar um objeto todo e enta˜o criar um objeto relacionado parte excluir um objeto todo e enta˜o excluir um objeto relacionado parte Composic¸o˜es reflexivas sa˜o composic¸o˜es de uma classe com ela pro´pria FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Heranc¸a Relacionamento entre classes onde uma classe compartilha a estrutura e o comportamento de uma ou mais classes Define uma hierarquia de abstrac¸o˜es na qual a subclasse herda de uma ou mais superclasses Heranc¸a simples Heranc¸a mu´ltipla Uma heranc¸a e´ um relacionamento do tipo “e´ um tipo de” FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Heranc¸a A subclasse herda os atributos, operac¸o˜es e relacionamentos da superclasse Cada subclasse pode definir novos atributos e/ou operac¸o˜es Cada subclasse pode redefinir operac¸o˜es da superclasse Cada subclasse pode participar de relacionamentos especı´ficos FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Heranc¸a Como identificar necessidade de heranc¸as? Procure por similaridades entre as classes Siga a regra: a subclasse e´ um tipo da superclasse A heranc¸a pela subclasse deve ser total Caso a regra na˜o seja satisfeita, utilize composic¸a˜o FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Dependeˆncia Indica que a mudanc¸a em uma classe pode causar mudanc¸as na outra Fatores que levam a` dependeˆncia entre classes: Troca de mensagens entre os objetos das classes Uma classe tem como atributo outra classe Uma classe aparece como paraˆmetro na assinatura da operac¸a˜o de outra classe FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Polimorfismo Um mesmo objeto pode ser de va´rios tipos Exemplo: Uma Pessoa pode ser um Estudante ou um Professor Na˜o e´ via´vel exigir que todos os outros objetos saibam todos os possı´veis tipos de um determinado objeto Todos os outros objetos devem reconhecer o objeto atrave´s de um u´nico tipo Trechos de co´digo para tratamento de diferentes tipos sa˜o eliminados Atrave´s do polimorfismo, instaˆncias de va´rias classes sa˜o tratadas de forma u´nica em um sistema FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Polimorfismo Cada tipo re-implementa alguma parte da interface em comum Outros objetos do sistema acessam a interface em comum de forma u´nica O comportamento do objeto sera´ definido pela re-implementac¸a˜o contida no objeto FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Polimorfismo Universal Parame´trico Implı´cito Explı´cito Inclusa˜o Ad-hoc Sobrecarga Coerc¸a˜o FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Polimorfismo Universal Polimorfismo Parame´trico Explı´cito Func¸a˜o atua da mesma forma sobre objetos de diferentes tipos Os tipos dos argumentos sa˜o passados como paraˆmetros Exemplo: printf do C FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Polimorfismo Universal Polimorfismo Parame´trico Implı´cito Func¸a˜o atua da mesma forma sobre objetos de diferentes tipos Os tipos desses objetos sa˜o identificados pelo compilador, que os passa implicitamente a` func¸a˜o Exemplo: write(x) do Pascal, se x e´ inteiro imprime inteiro FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Polimorfismo Universal Polimorfismo de Inclusa˜o Modela subtipos e heranc¸a O subtipo esta´ incluı´do no tipo Onde o objeto de um tipo for esperado, um objeto do subtipo deve ser aceito Exemplo: desenhar(Figura umaFigura) FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Polimorfismo Ad-hoc Polimorfismo de Sobrecarga: Um mesmo identificador denota va´rias func¸o˜es que operam sobre objetos de tipos distintos, sem estrutura comum Exemplo boolean pesquisa(int[] tabela, int x); boolean pesquisa(char[] tabela, char x); Polimorfismo de Coerc¸a˜o: Conversa˜o automa´tica de tipo para satisfazer o contexto Exemplo: soma = real + real FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Classes Objetos Relacionamentos Polimorfismo Polimorfismo Polimorfismo e´ uma te´cnica para aumentar o grau de reuso Semaˆntica de refereˆncia tem papel importante em polimorfismo Polimorfismos de sobrecarga e de inclusa˜o sa˜o inerentes a POO FAETERJ-Paracambi Ana´lise e Projeto de Sistemas Introduc¸a˜o Conceitos Ba´sicos Ana´lise e Projeto de Sistemas Prof. Anderson Luiz Menezes FAETERJ-Paracambi Contato: menezes@lncc.brFAETERJ-Paracambi Ana´lise e Projeto de Sistemas APS2014 Introdução Conceitos Básicos
Compartilhar