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!