O Paradigma Orientado a Objetosvitorsouza/archive/2020/.../academia-br-paradigma… · Paradigma é...

41
O Paradigma Orientado a Objetos Vítor E. Silva Souza ([email protected] ) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do Espírito Santo Este obra foi licenciada sob uma Licença Creative Commons Atribuição 3.0 Não Adaptada.

Transcript of O Paradigma Orientado a Objetosvitorsouza/archive/2020/.../academia-br-paradigma… · Paradigma é...

Page 1: O Paradigma Orientado a Objetosvitorsouza/archive/2020/.../academia-br-paradigma… · Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz,

O Paradigma Orientado a Objetos

Vítor E. Silva Souza

([email protected]) http://www.inf.ufes.br/~ vitorsouza

Departamento de Informática

Centro Tecnológico

Universidade Federal do Espírito Santo

Este obra foi licenciada sob uma Licença Creative Commons Atribuição 3.0 Não Adaptada.

Page 2: O Paradigma Orientado a Objetosvitorsouza/archive/2020/.../academia-br-paradigma… · Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz,

Contexto:  desenvolvimento  de  sistemas  

Maio  2013   O  Paradigma  Orientado  a  Objetos   2  

Descrição do problema

Descrição da solução

Sistema

Cor

resp

ond

ênci

a

Cor

rete

za

Val

idaç

ão

Ver

ific

ação

Problema Gestão de serviços de uma biblioteca.

Toda solicitação de emprés- timo deve ser atendida.

Processo de check-out de livros da biblioteca.

Sistema de check-out de livros da biblioteca.

Page 3: O Paradigma Orientado a Objetosvitorsouza/archive/2020/.../academia-br-paradigma… · Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz,

Modelagem  e  o  gap  semân=co  

Maio  2013   O  Paradigma  Orientado  a  Objetos   3  

Problema a ser resolvido

Domínio do Problema (Mundo Real)

Domínio da Solução (Mundo Computacional)

Modelo de Solução Modelagem

“Gap Semântico”

Page 4: O Paradigma Orientado a Objetosvitorsouza/archive/2020/.../academia-br-paradigma… · Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz,

O  que  é  o  gap  semân=co?  •  Distância  entre  o  problema  no  mundo  real  e  o  modelo  abstrato  construído  para  o  mundo  computacional;  

•  Quanto  menor,  mais  rápida  será  a  construção  da  solução;  

•  Diminuir  o  gap  semân=co  é  um  dos  obje=vos  da  Engenharia  de  SoOware;  

•  O  paradigma  orientado  a  objetos  busca  meios  de  diminuir  este  gap.  

Maio  2013   O  Paradigma  Orientado  a  Objetos   4  

Page 5: O Paradigma Orientado a Objetosvitorsouza/archive/2020/.../academia-br-paradigma… · Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz,

Paradigmas  de  desenvolvimento  •  O  que  é  um  paradigma?  

– Um  exemplo,  um  modelo,  um  padrão;  – Um  conjunto  de  ideias,  uma  base  filosófica.  

•  Um  paradigma  de  desenvolvimento  agrupa  métodos  e  técnicas  que  seguem  um  mesmo  conjunto  de  princípios;  

•  Dois  dos  mais  conhecidos  são:  – Desenvolvimento  Estruturado;  – Orientação  a  Objetos  (OO).  

Maio  2013   O  Paradigma  Orientado  a  Objetos   5  

Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz, ou seja, uma teoria, um conhecimento que origina o estudo de um campo científico; uma realização científica com métodos e valores que são

concebidos como modelo; uma referência inicial como base de modelo para estudos e pesquisas. (http://pt.wikipedia.org/wiki/Paradigma)

Page 6: O Paradigma Orientado a Objetosvitorsouza/archive/2020/.../academia-br-paradigma… · Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz,

Paradigmas  de  desenvolvimento  •  Estruturado:  

– Modelo  entrada  –  processamento  –  saída;  – Dados  separados  das  funções;  – Visto  na  disciplina  de  Programação  II  /  PBC.  

•  Orientado  a  Objetos  (OO):  – O  mundo  é  composto  por  objetos;  – Objetos  combinam  dados  e  funções;  –  Conceitos  do  problema  são  modelados  como  objetos  que  são  associados  e  interagem  entre  si.  

Maio  2013   O  Paradigma  Orientado  a  Objetos   6  

Page 7: O Paradigma Orientado a Objetosvitorsouza/archive/2020/.../academia-br-paradigma… · Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz,

Paradigma  OO  vs.  estruturado  

Maio  2013   O  Paradigma  Orientado  a  Objetos   7  

Análise de Sistemas 7

Sistema de Gerência Departamento

Funcionário

Nome

Ramal

Funcionário

Nome

Ramal

Tarefa

Descrição

Prazo

funcionario gerente

Registrar Tarefa Ver Tarefas

Estruturado / Procedural

Orientado a Objetos

Mais próximo do mundo real. A lógica é

encapsulada em objetos.

Page 8: O Paradigma Orientado a Objetosvitorsouza/archive/2020/.../academia-br-paradigma… · Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz,

Desvantagens  do  paradigma  estruturado  •  O  gap  semân=co  é  maior;  •  Frequentemente  gera  sistemas  dicceis  de  serem  man=dos:  – As  funções  tem  que  conhecer  a  estrutura  dos  dados;  – Mudanças  na  estrutura  dos  dados  acarreta  alteração  em  todas  as  funções  relacionadas.  

Maio  2013   O  Paradigma  Orientado  a  Objetos   8  

Por estes motivos, o paradigma orientado a objetos vem tomando o espaço que antes era

dominado pelo paradigma estruturado.

Page 9: O Paradigma Orientado a Objetosvitorsouza/archive/2020/.../academia-br-paradigma… · Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz,

Beneccios  da  orientação  a  objetos  •  Capacidade  de  enfrentar  novos  domínios;  •  Melhoria  da  interação  analistas  x  especialistas;  •  Aumento  da  consistência  interna  da  análise;  •  Alterabilidade,  legibilidade  e  extensibilidade;  •  Apoio  à  reu=lização.  

Maio  2013   O  Paradigma  Orientado  a  Objetos   9  

Orientação a objetos não é mágica e nem a “tábua de salvação” do desenvolvimento. É preciso aplicá-la com disciplina e em conjunto com outras técnicas da Engenharia de Software.

O foco deste curso é na programação OO. No entanto, é preciso entender os conceitos por trás do paradigma e aprender a modelar soluções OO. Você também usará isso no futuro!

Page 10: O Paradigma Orientado a Objetosvitorsouza/archive/2020/.../academia-br-paradigma… · Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz,

Filosofia  •  “O  mundo  é  composto  por  objetos”;  

•  OO  tenta  gerenciar  a  complexidade  dos  problemas  do  mundo  real  abstraindo  o  conhecimento  relevante  e  encapsulando-­‐o  em  objetos.  

Maio  2013   O  Paradigma  Orientado  a  Objetos   10  

Mundo Real (Conceitos)

Modelo de Solução (Modelagem OO) à à Código de Máquina

(Programação OO)

“Um sistema construído usando um método orientado a objetos é aquele cujos componentes são partes encapsuladas de dados e

funções, que podem herdar atributos e comportamento de outros componentes da mesma natureza, e cujos componentes

comunicam-se entre si por meio de mensagens”.

Eduard Yourdon

Page 11: O Paradigma Orientado a Objetosvitorsouza/archive/2020/.../academia-br-paradigma… · Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz,

Princípios  fundamentais  •  Auxiliam  a  administrar  a  complexidade;  •  Guiam  toda  a  tarefa  de  modelagem.  

Maio  2013   O  Paradigma  Orientado  a  Objetos   11  

Abstração Encapsulamento

Modularidade Hierarquia

Page 12: O Paradigma Orientado a Objetosvitorsouza/archive/2020/.../academia-br-paradigma… · Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz,

Abstração  •  “Modelos  mentais”:  visão  simplificada  do  mundo  construída  por  cada  um  em  cada  situação;  

•  Abstrair  consiste  em  ignorar  aspectos  irrelevantes  e  concentrar  nos  principais.  

Maio  2013   O  Paradigma  Orientado  a  Objetos   12  

Page 13: O Paradigma Orientado a Objetosvitorsouza/archive/2020/.../academia-br-paradigma… · Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz,

Abstração  •  Abstração  de  Dados:  

– Um  =po  é  definido  por  suas  operações;  –  Ex.:  Um  =po  pilha  é  definido  por  suas  operações  empilhar  e  desempilhar.  

•  Abstração  de  Procedimentos:  – Uma  operação  com  efeito  bem  definido  pode  ser  tratada  como  atômica,  mesmo  que  ela  faça  uso  de  outras  operações  de  mais  baixo  nível;  

–  calcularSalarioLiquido:  definida  em  termos  de  obterSalarioBruto,  calcularImposto,  calcularDescontos,  etc.  

Maio  2013   O  Paradigma  Orientado  a  Objetos   13  

Page 14: O Paradigma Orientado a Objetosvitorsouza/archive/2020/.../academia-br-paradigma… · Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz,

Encapsulamento  •  Separar  os  aspectos  externos  (o  que  faz)  dos  aspectos  internos  (como  faz):  – Aspectos  externos  =  interface,  contrato;  – Aspectos  internos  =  implementação.  

Maio  2013   O  Paradigma  Orientado  a  Objetos   14  

Page 15: O Paradigma Orientado a Objetosvitorsouza/archive/2020/.../academia-br-paradigma… · Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz,

Encapsulamento  •  Complemento  da  abstração:  

– Abstração  enfoca  o  comportamento  observável  de  um  objeto;  

–  Encapsulamento  enfoca  a  implementação  que  origina  este  comportamento.  

•  Promove  maior  estabilidade:  –  Clientes  do  objeto  só  conhecem  sua  interface;  –  Podemos  alterar  a  implementação  de  uma  operação  sem  afetar  o  restante  do  sistema.  

Maio  2013   O  Paradigma  Orientado  a  Objetos   15  

Page 16: O Paradigma Orientado a Objetosvitorsouza/archive/2020/.../academia-br-paradigma… · Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz,

Modularidade  •  Decomposição  do  sistema  em  módulos:  

–  Coesos  (baixo  acoplamento);  – Autônomos;  – De  interface  simples  e  coerente.  

•  Fundamental  para  o  reuso  e  extensão.  

Maio  2013   O  Paradigma  Orientado  a  Objetos   16  

Page 17: O Paradigma Orientado a Objetosvitorsouza/archive/2020/.../academia-br-paradigma… · Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz,

Hierarquia  •  É  uma  forma  de  arrumar  as  abstrações  e  simplificar  o  entendimento  do  problema;  

•  Também  promovem  o  reuso;  •  Sinergia  para  administrar  a  complexidade:  

– Abstração  auxilia  a  iden=ficar  os  conceitos  relevantes  do  mundo  real;  

–  Encapsulamento  oculta  a  visão  interna  das  abstrações  iden=ficadas;  

– Modularidade  nos  dá  um  meio  de  agrupar  logicamente  abstrações  relacionadas;  

–  Por  fim,  abstrações  formam  hierarquias.  

Maio  2013   O  Paradigma  Orientado  a  Objetos   17  

Page 18: O Paradigma Orientado a Objetosvitorsouza/archive/2020/.../academia-br-paradigma… · Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz,

Conceitos  básicos  

Maio  2013   O  Paradigma  Orientado  a  Objetos   18  

Classes

Estruturação

Métodos

Instâncias

Objetos

Mensagens

Associação

Composição

Herança

Page 19: O Paradigma Orientado a Objetosvitorsouza/archive/2020/.../academia-br-paradigma… · Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz,

Objetos  •  “Um  objeto  é  uma  en=dade  que  incorpora  uma  abstração  relevante  no  contexto  de  uma  aplicação”;  

•  Podem  ser  coisas  abstratas  (ex.:  uma  reserva  de  passagem  aérea)  ou  concretas  (ex.:  um  documento).  

Maio  2013   O  Paradigma  Orientado  a  Objetos   19  

Page 20: O Paradigma Orientado a Objetosvitorsouza/archive/2020/.../academia-br-paradigma… · Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz,

Objetos  –  caracterís=cas  principais  •  Estado  (estrutura):  conjunto  de  suas  propriedades  e  seus  valores  correntes;  

•  Comportamento:  conjunto  de  serviços  (operações)  que  o  objeto  provê;  

•  Iden=dade:  iden=ficador  único  que  diferencia  cada  objeto,  mesmo  que  tenham  o  mesmo  estado  e  comportamento.  

Maio  2013   O  Paradigma  Orientado  a  Objetos   20  

15 70 45

Page 21: O Paradigma Orientado a Objetosvitorsouza/archive/2020/.../academia-br-paradigma… · Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz,

Classes  •  Uma  classe  descreve  um  conjunto  de  objetos  com  as  mesmas  propriedades,  o  mesmo  comportamento,  os  mesmos  relacionamentos  com  outros  objetos  e  a  mesma  semân=ca;  

•  Similar  ao  conceito  de  =po.  

Maio  2013   O  Paradigma  Orientado  a  Objetos   21  

15 70 45

Casa   Cor;   Número;   Abrir Porta;   Fechar Porta;   Arquiteto.

#

Page 22: O Paradigma Orientado a Objetosvitorsouza/archive/2020/.../academia-br-paradigma… · Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz,

Classes  e  instâncias  •  Objeto  =  Instância  de  classe;  •  Paradigma  OO  norteia  o  desenvolvimento  por  meio  de  classificação  de  objetos:  – Modelamos  classes,  e  não  objetos;  – Objetos  são  en=dades  reais  –  executam  algum  papel  no  sistema;  

–  Classes  são  abstrações  –  capturam  a  estrutura  e  comportamento  comum  a  um  conjunto  de  objetos.  

Maio  2013   O  Paradigma  Orientado  a  Objetos   22  

Page 23: O Paradigma Orientado a Objetosvitorsouza/archive/2020/.../academia-br-paradigma… · Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz,

Mecanismos  de  estruturação  •  Objetos  relacionam-­‐se  uns  com  os  outros;  •  É  preciso  modelar  esta  complexidade  e  estruturar  as  classes;  

•  Mecanismos  propostos:  – Associação;  –  Composição;  – Herança.  

Maio  2013   O  Paradigma  Orientado  a  Objetos   23  

Page 24: O Paradigma Orientado a Objetosvitorsouza/archive/2020/.../academia-br-paradigma… · Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz,

Ligações  e  associações  •  Ligação:  conexão  entre  objetos;  •  Associação:  conexão  entre  classes  que  representa  a  existência  de  ligações;  

•  Uma  associação  descreve  um  conjunto  de  potenciais  ligações  da  mesma  maneira  que  uma  classe  descreve  um  conjunto  de  potenciais  objetos  [Rumbaugh].  

Maio  2013   O  Paradigma  Orientado  a  Objetos   24  

24  Classe: Pessoa Classe: Casa Classe: Cachorro

Habitantes Cão de Guarda

Page 25: O Paradigma Orientado a Objetosvitorsouza/archive/2020/.../academia-br-paradigma… · Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz,

Ligações  e  associações  •  Em  UML...  

Maio  2013   O  Paradigma  Orientado  a  Objetos   25  

Page 26: O Paradigma Orientado a Objetosvitorsouza/archive/2020/.../academia-br-paradigma… · Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz,

Composição  e  agregação  •  Formas  especiais  de  ligação  que  modelam  relacionamentos  todo-­‐parte;  

•  Objetos  complexos  agregam  ou  são  compostos  de  objetos  mais  simples;  

•  Composição:  – A  parte  só  pode  pertencer  a  um  todo  (por  vez).  Ex.:  uma  aula  de  uma  disciplina,  um  motor  de  um  carro;  

– A  parte  pode  não  pertencer  a  um  todo  (ex.:  motor);  •  Agregação:  

– A  parte  pode  ser  compar=lhada  com  vários  todos.  Ex.:  uma  disciplina  de  um  (ou  mais)  cursos  de  grad.  

Maio  2013   O  Paradigma  Orientado  a  Objetos   26  

Page 27: O Paradigma Orientado a Objetosvitorsouza/archive/2020/.../academia-br-paradigma… · Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz,

Generalização  e  especialização  •  Generalização:  quando  classes  têm  semelhanças  podemos  definir  uma  classe  mais  geral;  

•  Especialização:  muitas  vezes  um  conceito  pode  ser  refinado,  adicionando-­‐se  novas  caracterís=cas.  

Maio  2013   O  Paradigma  Orientado  a  Objetos   27  

Estudante

Nome

Universitario

Matrícula

EstudanteEnsinoMedio

Série

EstudanteGraduacao

Curso

EstudanteMestrado

Orientador

Page 28: O Paradigma Orientado a Objetosvitorsouza/archive/2020/.../academia-br-paradigma… · Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz,

Herança  •  Generalização  e  especialização  são  úteis  para  estruturação  do  sistema;  

•  São  formadas  hierarquias  de  classes:  –  “Filhos”  (ou  subclasses)  herdam  estrutura  e  comportamento  dos  “pais”  (ou  superclasses)  e  demais  “ancestrais”,  de  forma  indireta.  

•  A  herança  possibilita:  –  Reu=lização;  –  Captura  explícita  de  caracterís=cas  comuns;  – Definição  incremental  de  classes.  

Maio  2013   O  Paradigma  Orientado  a  Objetos   28  

Page 29: O Paradigma Orientado a Objetosvitorsouza/archive/2020/.../academia-br-paradigma… · Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz,

Cuidados  com  o  uso  de  herança  •  Semân=ca  da  herança:  

–  “é  um  =po  de”;  –  “é  uma  instância  indireta  de”;  –  Ex.:  Universitário  é  um  =po  de  Estudante.  

•  Se  a  subclasse  precisa  cancelar  caracterís=cas  da  superclasse,  há  algo  errado;  

•  Herança  pode  se  tornar  um  vício!  

Maio  2013   O  Paradigma  Orientado  a  Objetos   29  

Page 30: O Paradigma Orientado a Objetosvitorsouza/archive/2020/.../academia-br-paradigma… · Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz,

Herança  múl=pla  •  Atenção  à  redundância!  

Maio  2013   O  Paradigma  Orientado  a  Objetos   30  

Page 31: O Paradigma Orientado a Objetosvitorsouza/archive/2020/.../academia-br-paradigma… · Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz,

Mensagens  e  métodos  •  As  operações  (serviços)  que  um  objeto  oferece  são  chamadas  de  métodos;  

•  Para  solicitar  um  serviço  um  objeto  (cliente)  envia  uma  mensagem  a  outro.  

Maio  2013   O  Paradigma  Orientado  a  Objetos   31  

Objeto: Contador Objeto: Calculadora

Calcular IR (renda, descontos)

R$ 350,00

Page 32: O Paradigma Orientado a Objetosvitorsouza/archive/2020/.../academia-br-paradigma… · Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz,

Mensagens  e  métodos  •  Encapsulamento:  não  é  permi=do  acessar  diretamente  as  propriedades  de  um  objeto,  é  preciso  operar  por  meio  de  métodos  (troca  de  mensagens);  

•  Abstração:  a  complexidade  de  um  objeto  é  escondida  “por  trás”  de  suas  operações;  

•  Toda  funcionalidade  do  sistema  é  realizada  pela  troca  de  mensagem  entre  objetos.  

Maio  2013   O  Paradigma  Orientado  a  Objetos   32  

Page 33: O Paradigma Orientado a Objetosvitorsouza/archive/2020/.../academia-br-paradigma… · Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz,

Conceitos  avançados  

Maio  2013   O  Paradigma  Orientado  a  Objetos   33  

Ligação Dinâmica

Polimorfismo

Operações Abstratas

Classes Abstratas

Sobrescrita

Sobrecarga Persistência

Page 34: O Paradigma Orientado a Objetosvitorsouza/archive/2020/.../academia-br-paradigma… · Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz,

Classes  abstratas  •  Classes  abstratas  não  podem  ser  instanciadas;  

– Usadas  para  organizar  caracterís=cas  comuns  a  diversas  subclasses;  

– Desenvolvida  para  ser  herdada.  •  Não  possui  instâncias  diretas,  só  indiretas.  

Maio  2013   O  Paradigma  Orientado  a  Objetos   34  

Veículo

Andar ()

Carro

Andar ()

Bicicleta

Andar ()

?

Page 35: O Paradigma Orientado a Objetosvitorsouza/archive/2020/.../academia-br-paradigma… · Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz,

Operações  abstratas  •  Classes  abstratas  podem  definir  métodos  sem  implementação,  chamados  abstratos;  –  Subclasses  concretas  são  obrigadas  a  implementá-­‐lo;  –  Classes  concretas  não  podem  ter  métodos  abstratos;  –  Classes  abstratas  podem  ter  métodos  concretos.  

•  Interface  =  classe  abstrata  que  só  possui  operações  abstratas.  

Maio  2013   O  Paradigma  Orientado  a  Objetos   35  

Page 36: O Paradigma Orientado a Objetosvitorsouza/archive/2020/.../academia-br-paradigma… · Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz,

Sobrecarga  e  sobrescrita  •  Sobrecarga:  operações  dis=ntas  com  o  mesmo  nome;  •  Sobrescrita:  subclasse  define  nova  implementação  para  operação  definida  na  superclasse.  

Maio  2013   O  Paradigma  Orientado  a  Objetos   36  

Análise  de  Sistemas   36  

Calculadora

Calcular IR (renda)

Calcular IR (renda, descontos) Calculadora Simplificada .

Calcular IR (renda, descontos)

Page 37: O Paradigma Orientado a Objetosvitorsouza/archive/2020/.../academia-br-paradigma… · Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz,

Polimorfismo  •  O  objeto  emissor  não  precisa  saber  quem  é  o  objeto  receptor,  contanto  que  saiba  que  ele  responde  a  uma  certa  mensagem;  – O  emissor  só  conhece  uma  interface;  – O  receptor  sabe  a  implementação  certa.  

•  É  uma  forma  de  sobrescrita,  mas  todas  as  operações  mantém  a  mesma  semân=ca  em  toda  a  hierarquia.  

Maio  2013   O  Paradigma  Orientado  a  Objetos   37  

Page 38: O Paradigma Orientado a Objetosvitorsouza/archive/2020/.../academia-br-paradigma… · Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz,

Polimorfismo  •  Habilidade  de  tomar  várias  formas.  

Maio  2013   O  Paradigma  Orientado  a  Objetos   38  

Forma

desenhar ()

desenhar ()

Page 39: O Paradigma Orientado a Objetosvitorsouza/archive/2020/.../academia-br-paradigma… · Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz,

Ligação  dinâmica  •  Quando  chamamos  uma  função,  esta  deve  estar  ligada  ao  código  que  a  implementa;  –  Ligação  está=ca  =  feita  em  tempo  de  compilação;  –  Ligação  dinâmica  ou  tardia  =  feita  em  tempo  de  execução.  

•  Necessário  por  nem  sempre  sabermos  a  classe  verdadeira  de  um  objeto;  

•  É  a  base  para  o  polimorfismo.  

Maio  2013   O  Paradigma  Orientado  a  Objetos   39  

Page 40: O Paradigma Orientado a Objetosvitorsouza/archive/2020/.../academia-br-paradigma… · Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz,

Persistência  •  Capacidade  do  objeto  de  transcender  o  tempo  e  o  espaço;  – Armazenamento  em  banco  de  dados;  –  Transmissão  pela  rede.  

Maio  2013   O  Paradigma  Orientado  a  Objetos   40  

Page 41: O Paradigma Orientado a Objetosvitorsouza/archive/2020/.../academia-br-paradigma… · Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz,

h"p://nemo.inf.ufes.br/  

Maio  2013   O  Paradigma  Orientado  a  Objetos   41