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: 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: 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?