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:
- O histórico pode ser representado por uma seqüência
de strings indicando a operação realizada e o valor
envolvido: "100.25 C" "47.98 D" "17.42 D";
- A nova classe deve ter todas as operações de Conta
mais um método imprime_extrato;
- Se possível, defina ContaHist a partir de
Conta.
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.