Orientação a Objetos e Java
Exame Escrito 3


Paulo Borba
Departamento de Informática
Universidade Federal de Pernambuco
19 de Novembro de 1996



Questão 1 Considere a seguinte classe de contas bancárias em Java:

    class Conta {
        private double saldo;
        private long numero;
        void credito(double val) {saldo = saldo + val;}
        void debito(double val) {saldo = saldo - val;}
        void print_saldo() {System.out.println(numero + " " + saldo);}
        ...
    }
Defina em Java uma classe ContaHist de contas bancárias que mantêm históricos das operações realizadas, de forma que pode-se imprimir extratos. Observe os seguintes aspectos: Use String.valueOf(d) para transformar um elemento d de double na string correspondente, e s + t para concatenar as strings s e t.

Questão 2 Um dos atributos de uma interface gráfica para uma conta bancária é a própria conta, conforme indicado pelo esboço da definição de uma classe de interfaces gráficas para contas bancárias:

    class InterfaceGrafica {
        TipoConta conta;
        ...
    }
Suponha que cada objeto desta classe apresenta graficamente o saldo e o número da contas associada, além de botões para realizar as operações de crédito e débito.
    Indique como definir o tipo TipoConta em Java de forma que os objetos da classe acima possam ser usados como interfaces gráficas para qualquer tipo de conta bancária, não só para objetos de Conta e ContaHist, por exemplo.Que outros mecanismos de Java poderiam ter sido usados para definir TipoConta? Justifique a sua escolha.

Questão 3 Que recursos de Java favorecem reusabilidade de software? Justifique brevemente.

Questão 4 Explique porquê o mecanismo de classes genéricas (não suportado em Java) favorece ainda mais reusabilidade, comparando com os recursos de Java indicados na questão anterior.