MAB 240 – Computação II

MAB 240 - Computação II

Fabio Mascarenhas

Laboratório 4 - 02/04/2012

Uma dica: baixe o projeto Eclipse da quarta semana de aula e importe ele no Eclipse antes de começar, assim você pode ver como os conceitos foram aplicados em sala.

Não esqueça de criar um projeto Eclipse chamado Lab4 para os exercícios, e um scrapbook nesse projeto para você poder fazer experimentos. O objetivo deste laboratório é exercitar a criação de métodos com listas; não se esqueça de criar pelo menos uma classe de teste (usando File->New->JUnit Test Case...) para testar seus métodos.

1. Comece implementando uma classe Album para representar um álbum de música, com os campos título e artista do tipo string e um campo ano do tipo inteiro, para o ano de lançamento do álbum. Todos os campos devem ser privados, mas implemente métodos getTitulo(), getArtista() e getAno para obter o título, artista e ano de um determinado álbum, respectivamente.

2. Agora você deve implementar a classe Acervo, contendo um campo string com o nome do dono do acervo e uma lista de álbuns. Os campos devem ser privados. Faça o construtor de Acervo poder receber quantos álbuns forem necessários (usando ...), e implemente um métido getDono() que retorna o dono de um acervo.

3. Implemente o método Album getAlbum(String titulo) na classe Acervo, que retorna a instância de álbum com o título passado, ou null caso não exista.

4. Implemente o método List<Album> getAlbuns(int ano) na classe Acervo, que retorna todos os álbums do acervo lançados em determinado ano.

5. Implemente o método List<Album> getAlbuns(String artista) na classe Acervo, que retorna todos os álbums do acervo de determinado artista.

6. Os dois métodos acima são bem parecidos. Vamos ver o quanto! Implemente uma interface FiltroAlbum com um único método boolean valido(Album a). Agora defina duas classes que implementam essa interface: FiltroAlbumAno tem um campo para o ano, e seu método valido retorna true se o álbum passado foi lançado naquele ano e false se não for. Defina também a classe FiltroAlbumArtista, que faz o mesmo para o nome do artista.

7. Implemente na classe Acervo um método List<Album> getAlbuns(FiltroAlbum filtro) que retorna todos os álbuns válidos segundo o filtro passado. Reimplemente as outras duas versões de getAlbuns em função desse método, usando as duas classes que você definiu no exercício anterior.

8. Implemente na classe Acervo um método List<String> getArtistas() que retorna os nomes de todos os artistas com álbuns naquele acervo, em ordem alfabética. Você vai precisar ler com atenção a documentação da interface List de Java!


Last modified: Sun Apr 1 18:18:46 BRT 2012