Orientação a Objetos e Java
Exame Final


Paulo Borba
Departamento de Informática
Universidade Federal de Pernambuco
11 de Dezembro de 1997



Questão 1 O pacote java.util de Java fornece a classe Vector cujos objetos são "vetores". Um "vetor" é basicamente um array de objetos (da classe Object) que pode crescer dinamicamente, dependendo da quantidade de objetos a serem armazenados. Isto é, a capacidade de armazenamento de um "vetor" é variável e limitada pela memória da máquina. Assumindo que o pacote java.util não é disponível, implemente em Java a classe Vector com as seguintes operações: Como você indicaria em Java que a classe Vector pertence ao pacote java.util?

Questão 2 Evitando duplicar o código de Vector e seguindo os princípios de qualidade de software, defina em Java uma classe SpoiledVector que é similar a Vector só que setElementAt não levanta uma exceção quando o índice dado é maior do que o número de elementos armazenados no "vetor". Ao invés disso, o setElementAt de SpoiledVector aumenta o tamanho do "vetor", inserindo espaços vazios (null), para o valor do índice dado e então armazena o objeto dado como argumento.

Questão 3 Segundo os fatores de qualidade de software, quais as vantagens e desvantagens decorrentes da classe Vector manipular objetos da classe Object? Discuta brevemente como estas desvantagens poderiam ser superadas em Java e em linguagens que suportam classes parametrizadas.