Orientação a Objetos e Java
Exame Final
Paulo Borba
Departamento de Informática
Universidade Federal de Pernambuco
12 de Dezembro de 1996
Questão 1
Defina em Java um tipo Conta de contas bancárias,
tendo métodos para realizar as seguintes operações:
- credito, credita um dado valor na conta;
- debito, debita um dado valor da conta;
- imprime_saldo, imprime o saldo e número da conta.
Defina um subtipo de Conta chamado ContaDesfazer,
cujos objetos têm as mesmas operações dos objetos de
Conta mais uma operação desfazer para desfazer
a última operação de crédito ou débito realizada (similar
às funções "desfazer" e "undo" de editores de texto,
planilhas, etc.).
Que outros mecanismos de Java poderiam ter sido utilizados
para definir os tipos Conta e ContaDesfazer?
Justifique a sua escolha.
Questão 2
Defina em Java uma classe Árvore de árvores binárias
de contas bancárias (veja questão acima), tendo métodos para
realizar as seguintes operações:
- insere, insere uma dada conta na árvore;
- pertence, indica se uma conta com um dado número
está na árvore;
- imprime_saldos, imprime o saldo de todas as contas na
árvore, em ordem crescente de número de conta.
Defina também o inicializador desta classe.
Já que o número de elementos em uma árvore não é
limitado, não use arrays para resolver esta questão.
Questão 3
Compare os seguintes mecanismos de Java para definição de tipos:
interfaces e classes abstratas. Quais as vantagens e
desvantagens de se usar um ou outro mecanismo? Quais são as
diferenças semânticas e pragmáticas entre os dois
mecanismos?