Interfaces e Subtipos

Programação 3: Orientação a Objetos e Java


Interfaces

Como explorar aspectos comuns a objetos de classes diferentes?


Leitura

  1. Transparências
  2. Várias maneiras de definir aplicações bancárias. Note bem a utilização de pacotes e interfaces nos exemplos.

Exercícios

  1. Adicionar a implementação dos métodos "saldo_total()" e "num_contas()" tanto à classe Banco quanto à classe BancoModular.(Opcional)
  2. Considere a seguinte classe de conjuntos de inteiros em Java:
       class Conj {
         void inserir (int elemento) {...}
         void unir (Conj conjunto) {...}
         int retirar () {...}
       }
    com operações para inserir um dado elemento em um conjunto; unir dois conjuntos; e retirar um elemento arbitrário de um conjunto, devolvendo-o como resultado.

    Usando as classes Conj e Pilha, defina em Java um tipo Depósito de depósitos de inteiros de forma que

    Modifique ou extenda as classes Conj e Pilha caso necessário. (Opicional)

  3. Que outros mecanismos de Java poderiam ter sido usados para definir a classe Depósito? Justifique a sua escolha. (Opcional)

  4. Explique como o mecanismo de interfaces favorece reusabilidade e extensibilidade. Justifique. (Opcional)

  5. Modifique a classe Banco para que seja possível armazenar todos os tipos de contas vistos em aula. (Opicional)

  6. Modifique o sistema de controle de estoque requisitado como exercício para que não seja possível vender produtos fora do prazo de validade. (Opicional)
  7. Usando as classes Lista e ConjConta defina um tipo DepósitoDeContas tendo métodos para inserir e procurar uma conta em um depósito, onde os depósitos podem ser conjuntos ou listas de contas. (Opicional)


Paulo Borba (phmb@di.ufpe.br)