Orientação a Objetos e Java
Primeiro Exame Escrito
Paulo Borba
Departamento de Informática
Universidade Federal de Pernambuco
2 de Outubro de 1997
Questão 1
Defina em Java a classe Cliente cujos
objetos são clientes de uma empresa telefônica; os clientes
têm nome, número e endereço (rua, CEP, número,
cidade e estado). Defina também a operação rua que
retorna a rua onde um determinado cliente reside.
Do ponto de vista de qualidade de software, é
interessante também definir a classe Endereço? Quais
as vantagens e desvantagens de se definir esta classe? Justifique brevemente
sua resposta indicando que fatores de qualidade foram impactados pela sua
escolha na implementação de Cliente.
Assumindo que você definiu Cliente
usando a classe Endereço, faz sentido ter a operação
rua tanto em Endereço quanto em Cliente? Justifique
brevemente sua resposta segundo os fatores de qualidade de software.
Questão 2
Defina em Java a classe FilaDeClientes
cujos objetos são filas de clientes esperando para comprar um telefone.
Esta classe deve ter operações para
-
inserir um cliente no final da fila;
-
remover e, em seguida, devolver o primeiro cliente da fila;
-
remover da fila um cliente com um dado número.
Já que o número de clientes em uma fila não
e limitado, não use arrays para resolver esta questão.
Também não use nenhuma classe predefinida de Java
além das mencionadas acima. Para tratar os casos de erro, use o
mecanismo de exceções de Java.
Questão 3
Procurando obter o máximo de reusabilidade,
defina em Java a classe ClienteDoGoverno que tem todas as características
e operações de Cliente mais uma indicação
se o cliente pertence ao governo federal, estadual ou municipal.
O que teria que ser alterado no tipo FilaDeClientes
para ser possível inserir e remover clientes do governo? Justifique
sua resposta e o impacto da mesma sobre qualidade de software.
Adicione um método a FilaDeClientes que
conta o número de clientes do governo federal em uma determinada
fila.