Pacotes e Interfaces
Pacotes

●   Organização
●   Problema de classes com o mesmo nome
●   Pacotes estão diretamente relacionado a estrutura de
    pastas
●   Pacotes devem agrupar classes similares ou relacionadas
●   Nome real de uma classe tem o nome do pacote incluso
●   Ex:
      java.util.Date
      java.sql.Date
Pacotes

●   Uma classe deve se encontrar no mesmo diretorio que a
    define
●   A palavra package (pacote) define o nome do pacote e uma
    Classe
●   Para usar uma classe que se encontra no mesmo pacote,
    basta usa-la normalmente. Se ela estiver em um outro
    pacote um import deve ser declarado após o nome do
    package (pacote).
Convenções

●   Pacotes: nomedopacote.minusculo
●   Classes: NomeDaClasse
●   Metodos e atributos: nomeDoMetodoOuAtributo
Interfaces

●   Interface é um recurso da orientação a objeto utilizado em
    Java que define ações que devem ser obrigatoriamente
    executadas, mas que cada classe pode executar de forma
    diferente.
●   Interfaces contém valores constantes ou assinaturas de
    métodos que devem ser implementados dentro de uma
    classe.
●   Uma interface não é herdada, mas sim, implementada.
●   Diferente da herança, onde uma classe só pode estender
    de outra classe, uma classe pode implementar uma ou mais
    interfaces.
Exemplo Interface
Exemplo Interface
Exemplo Interface
Exemplo Interface

●   Essa seria uma solução boa? Por que?
Exemplo Interface

●   Uma boa saída
Exemplo Interface

●   NOVO REQUISITO: Clientes também precisam logar no
    sistema. Como fazer?
Exemplo Interface

●   Saída elegante:
Exemplo Interface

●   Finalmente:
Conceito Interfaces
Interfaces

●   Uma boa pratica ao se programar OO é preferir o uso de
    interfaces por composição à herança.
●   James Gosling:
    “Rather than subclassing, just use pure interfaces. It’s not so
    much that class inheritance is particularly bad. It just has
    problems.”
Mais Exemplos

●   Trajetorias
●   N-puzzle:
    http://n-puzzle.googlecode.com/files/n-puzzle-all-1.1.2.jar
Duvidas?

7 interfaces

  • 1.
  • 2.
    Pacotes ● Organização ● Problema de classes com o mesmo nome ● Pacotes estão diretamente relacionado a estrutura de pastas ● Pacotes devem agrupar classes similares ou relacionadas ● Nome real de uma classe tem o nome do pacote incluso ● Ex: java.util.Date java.sql.Date
  • 3.
    Pacotes ● Uma classe deve se encontrar no mesmo diretorio que a define ● A palavra package (pacote) define o nome do pacote e uma Classe ● Para usar uma classe que se encontra no mesmo pacote, basta usa-la normalmente. Se ela estiver em um outro pacote um import deve ser declarado após o nome do package (pacote).
  • 4.
    Convenções ● Pacotes: nomedopacote.minusculo ● Classes: NomeDaClasse ● Metodos e atributos: nomeDoMetodoOuAtributo
  • 5.
    Interfaces ● Interface é um recurso da orientação a objeto utilizado em Java que define ações que devem ser obrigatoriamente executadas, mas que cada classe pode executar de forma diferente. ● Interfaces contém valores constantes ou assinaturas de métodos que devem ser implementados dentro de uma classe. ● Uma interface não é herdada, mas sim, implementada. ● Diferente da herança, onde uma classe só pode estender de outra classe, uma classe pode implementar uma ou mais interfaces.
  • 6.
  • 7.
  • 8.
  • 9.
    Exemplo Interface ● Essa seria uma solução boa? Por que?
  • 10.
    Exemplo Interface ● Uma boa saída
  • 11.
    Exemplo Interface ● NOVO REQUISITO: Clientes também precisam logar no sistema. Como fazer?
  • 12.
    Exemplo Interface ● Saída elegante:
  • 13.
  • 14.
  • 15.
    Interfaces ● Uma boa pratica ao se programar OO é preferir o uso de interfaces por composição à herança. ● James Gosling: “Rather than subclassing, just use pure interfaces. It’s not so much that class inheritance is particularly bad. It just has problems.”
  • 16.
    Mais Exemplos ● Trajetorias ● N-puzzle: http://n-puzzle.googlecode.com/files/n-puzzle-all-1.1.2.jar
  • 17.