Orientação a Objetos e Java
Exame Escrito
Paulo Borba
Departamento de Informática
Universidade Federal de Pernambuco
2 de Maio de 1997
Questão 1
Defina em Java um tipo Mapeamento cujos objetos são
mapeamentos de objetos da classe String para objetos
da classe Object. Dada uma string, um mapeamento retorna
o objeto associado a ela, se esta associação foi anteriormente
introduzida. Assim, os mapeamentos devem ter métodos para
realizar as seguintes operações:
- associar, associa uma dada string a um dado objeto;
se a string já estiver associada a algum objeto, essa
associação será eliminada.
- mapear, retorna o objeto associado a uma dada string;
retorna null caso a string não seja associada a
nenhum objeto.
Já que o número de associações em um mapeamento não é
limitado, não use arrays para resolver esta questão.
Também não use nenhuma classe pré-definida de Java
além das mencionadas acima. Assuma que o método equals
indica se duas strings são iguais.
Questão 2
Defina em Java um tipo Servidor cujos objetos são
servidores WWW tendo os seguintes métodos e atributos:
- documentos, um objeto de Mapeamento
que associa URLs aos seus respectivos documentos, assumindo
que tanto URLs quanto documentos são representados por
strings.
- pegaDocumento, devolve como resultado o documento
associado a uma dada URL, se existir; caso contrário
devolve como resultado um documento contendo uma mensagem
de erro.
Questão 3
Defina em Java um tipo Cliente cujos objetos são
clientes WWW (browsers) tendo os seguintes métodos e atributos:
- servidores, um objeto de Mapeamento
que associa URLs aos seus respectivos servidores (objetos da
classe Servidor).
- abreURL, devolve como resultado o documento
associado a uma dada URL.
- desenhaDocumento, desenha graficamente na tela um
dado documento; como este método é dependente de
plataforma, a implementação do mesmo não é feita em
Cliente.
- mostraURL, abre uma dada URL e em seguida desenha
o documento resultante.
Indique como a partir do tipo Cliente poderia-se definir
um tipo ClienteWindows apto a funcionar no ambiente
Windows'95.
Questão 4
Implemente em Java um tipo ServidorSeguro cujo
método pegaDocumento, por questões de segurança,
devolve duas cópias do mesmo documento, uma concatenada com
a outra.
O que teria que ser alterado no tipo Cliente para que os
clientes fossem capazes de trabalhar com os dois tipos de
servidores? Que outros mecanismos de Java poderiam ser utilizados
para resolver esta questão? Justifique a sua escolha segundo os
aspectos de qualidade de software.