Diogo Vinícius Winck
                diogo.winck@gmail.com




gtalk: diogo.winck@gmail.com
skype: diogo.winck
site: www.winck.biz
Objetivo
Os objetivos da aula de hoje são:
  • Generalização e especialização
  • Tipos de Herança
Quem pode
definir o que é
um especialista?
Liste exemplos de
agregações.

Liste exemplos de
especialização
Por que não usar o termo
           herança?
Herança implica em:
• Duas pessoas diferentes
• Uma pessoa morre
• Outra ganha o espólio...


Mas:
• Uma tesoura de criança é um tipo especial de tesoura:
  só existe um objeto, não há morte e não tem espólio.
modelando
        Funcionario             FuncionarioComissionado


nome: String
                             comissao: double
sobrenome: String
                             vendas: double
salario: double

getNome(): String            zerarVendas():void
getSobrenome: String         addVenda(valor:double):void
getSalario: double           calcularSalario():double
Quantos métodos
um objeto da Classe
FuncionarioComissionado
possui?
Superclasse e subclasse
• Superclasse é a classe mais genérica (também chamada
  de classe mãe).
• Subclasse é a classe mais especializada (também é
  chamada de classe filha)

         Super       NumberFormat




           ChoiceFormat         DecimalFormat
Exercício




            Crie as classes:
              • Funcionário e
              • FuncionárioComissionado


            • O método calcularSalario é definido por:
              • salario + (vendas * comissao)/100
Exercício




            Crie um programa que utilize tanto
            funcionário quanto funcionário
            comissionado.
Interfaces
Considere a interface abaixo:

          public interface VoadorInteface{
               public void decolar();
               public void voar();
               public void pousar();
          }
Quais objetos
implementam esta
interface?

Podemos dizer que
cada um deles possui
a relação “é um”
com esta interface?
Algumas informações
Composição: uma classe implementada usando
objetos (classes) como propriedades internas.

Delegação: é o processo onde um objeto passa uma
mensagem para outro objeto, para que este forneça
algum serviço (execute um método).

Herança Múltipla: quando há mais de uma
superclasse. Não é completamente suportado no java!
Quais são exemplos
de composição?

Quais são exemplos
de delegação?
Visibilidade
                 Impõe uma relação entre superclasse e a subclasse.

                 • Público: totalmente acessível tanto no escopo entre
                  super/sub quanto com qualquer outra classe
acessibilidade




                 • Protegido: Acessível somente no escopo super/sub.


                 • Privado: acessível somente no
                  escopo da classe.
Trabalho para próxima aula
• Elaborar um estudo sobre a API Collections do Java.
   • O que é uma API?
   • Quais interfaces ela disponibiliza?
   • Quais classes ela disponibiliza?
   • Qual a diferença entre um ArrayList e um LinkedList?
   • O que são Maps?
   • O que são Hash?

• Deve ser elaborado uma apresentação e um artigo.
  Alguns pessoas serão convidadas a apresentar.
• Pode ser em dupla.
Referências Bibliográficas
• As imagens foram pesquisadas junto a banco de imagens da
  Microsoft.
• SINTES, Anthony. Aprenda programação orientada a objetos em
  21 dias. 1. ed. São Paulo: Pearson Makron Books, 2002-2010.

Especialização e generalização em java

  • 2.
    Diogo Vinícius Winck diogo.winck@gmail.com gtalk: diogo.winck@gmail.com skype: diogo.winck site: www.winck.biz
  • 3.
    Objetivo Os objetivos daaula de hoje são: • Generalização e especialização • Tipos de Herança
  • 4.
    Quem pode definir oque é um especialista?
  • 9.
    Liste exemplos de agregações. Listeexemplos de especialização
  • 10.
    Por que nãousar o termo herança? Herança implica em: • Duas pessoas diferentes • Uma pessoa morre • Outra ganha o espólio... Mas: • Uma tesoura de criança é um tipo especial de tesoura: só existe um objeto, não há morte e não tem espólio.
  • 11.
    modelando Funcionario FuncionarioComissionado nome: String comissao: double sobrenome: String vendas: double salario: double getNome(): String zerarVendas():void getSobrenome: String addVenda(valor:double):void getSalario: double calcularSalario():double
  • 12.
    Quantos métodos um objetoda Classe FuncionarioComissionado possui?
  • 13.
    Superclasse e subclasse •Superclasse é a classe mais genérica (também chamada de classe mãe). • Subclasse é a classe mais especializada (também é chamada de classe filha) Super NumberFormat ChoiceFormat DecimalFormat
  • 14.
    Exercício Crie as classes: • Funcionário e • FuncionárioComissionado • O método calcularSalario é definido por: • salario + (vendas * comissao)/100
  • 15.
    Exercício Crie um programa que utilize tanto funcionário quanto funcionário comissionado.
  • 16.
    Interfaces Considere a interfaceabaixo: public interface VoadorInteface{ public void decolar(); public void voar(); public void pousar(); }
  • 17.
    Quais objetos implementam esta interface? Podemosdizer que cada um deles possui a relação “é um” com esta interface?
  • 18.
    Algumas informações Composição: umaclasse implementada usando objetos (classes) como propriedades internas. Delegação: é o processo onde um objeto passa uma mensagem para outro objeto, para que este forneça algum serviço (execute um método). Herança Múltipla: quando há mais de uma superclasse. Não é completamente suportado no java!
  • 19.
    Quais são exemplos decomposição? Quais são exemplos de delegação?
  • 20.
    Visibilidade Impõe uma relação entre superclasse e a subclasse. • Público: totalmente acessível tanto no escopo entre super/sub quanto com qualquer outra classe acessibilidade • Protegido: Acessível somente no escopo super/sub. • Privado: acessível somente no escopo da classe.
  • 21.
    Trabalho para próximaaula • Elaborar um estudo sobre a API Collections do Java. • O que é uma API? • Quais interfaces ela disponibiliza? • Quais classes ela disponibiliza? • Qual a diferença entre um ArrayList e um LinkedList? • O que são Maps? • O que são Hash? • Deve ser elaborado uma apresentação e um artigo. Alguns pessoas serão convidadas a apresentar. • Pode ser em dupla.
  • 22.
    Referências Bibliográficas • Asimagens foram pesquisadas junto a banco de imagens da Microsoft. • SINTES, Anthony. Aprenda programação orientada a objetos em 21 dias. 1. ed. São Paulo: Pearson Makron Books, 2002-2010.