Orientação a Objetos e Java
Exame Escrito Final


Paulo Borba
Departamento de Informática
Universidade Federal de Pernambuco
1 de Julho de 1997



Questão 1 Procurando obter o máximo de reusabilidade, defina em Java as classes TelCel e TelConv correspondendo a telefones celulares e convencionais. Todo telefone tem um número associado, que pode ser representado por um elemento de int. Os telefones celulares têm também o número de série do equipamento e uma descrição do mesmo. Já os telefones convencionais têm um endereço de instalação. A operação para trocar o número de um telefone funciona perfeitamente para telefones celulares, mas dá uma mensagem de erro quando tenta-se mudar o número de um telefone convencional.

Questão 2 Defina em Java uma classe ConjFone cujos objetos são conjuntos de telefones (celulares ou convencionais). Esta classe deve implementar a seguinte interface:

    interface DepositoDeFones {
        void insere(Telefone t);
        Telefone procura(int n);
        Telefone next();
        void reset();
        boolean eoi();
    }
que especifica operações para inserir um telefone no conjunto, procurar um telefone pelo seu número, devolver (não remover!) um telefone ainda não devolvido do conjunto, indicar que nenhum telefone foi devolvido, e verificar se ainda existem telefones a serem devolvidos.

Questão 3 Defina em Java uma classe Cliente cujos objetos são clientes de uma empresa telefônica; isto é, os clientes têm nome, endereço e um conjunto de telefones associados. Defina o método inseretelefone de Cliente que recebe um telefone e insere no conjunto de telefones do cliente associado; mas considere que um cliente só pode ter um telefone celular.