UT6.
- Actividad 25
Queremos hacer una especie de Spotify. Como sabéis, Spotify maneja playlists y canciones.
Modelaremos esos elementos utilizando clases Cancion y Playlist.
Cada Cancion tiene un titulo (atributo “titulo”), un nombre de artista/grupo (atributo “artista”)
y una duración total (atributo “duracionMinutos”). Tenemos que crear atributos privados,
constructor por defecto y con parámetros (para todos los atributos), métodos get y set de los
atributos, y el método toString(). El método toString() devolverá en este formato el contenido
de la canción “[<titulo> - <artista> (<duracion> minutos) ]”. Por ejemplo: “Get Lucky – Daft
Punk (3 minutos)”.
La clase Cancion tendrá un método “reproducir()” que imprimirá en pantalla “Reproduciendo…
“ concatenado con el titulo de la canción.
Por lo tanto tendremos una clase Playlist, que tendrá dentro una lista de objetos de clase
Cancion (atributo “canciones” de tipo ArrayList), y también un nombre de esa Playlist (atributo
“nombre”). Tendrá un constructor por defecto y un constructor por parámetros (pero sólo
recibe de parámetro el nombre). En ambos constructores se inicializará la lista (new del
ArrayList de canciones).
Métodos de la clase Playlist:
• anyadirCancion(Cancion): void
• obtieneCancion(int posición): Cancion
• obtieneTotalCanciones(): int
• mostrarPlaylist(): void -> Imprimirá por pantalla la variable de la lista
• totalDuracionPlaylist() : int -> tendrá que recorrer todas las canciones en la playlist, y
hacer el sumatorio de todos los minutos de las canciones. Utilizar for avanzado.
• reproducirPlaylist():void -> recorre toda la lista de canciones, invocando al método
“reproducir”. Si no hay canciones, imprimirá “-La playlist no tiene canciones-“. Utilizar bucle
“for simple”.
• reproducirCancion(int posición):void -> Recupera la canción que ocupa la posición
indicada, e invocará a su método “reproducir”.
• limpiarPlaylist() : void -> limpia todas las canciones de la lista. Imprimirá en pantalla “-
Lista vacía-“ tras limpiarla.
• eliminarCancion(int posición): boolean -> Eliminará la canción, sólo si la posición es
válida. Devolverá true si la posición es válida, false en caso contrario o bien la lista sea vacía.
• encontrarCancionPorTitulo(String nombre): Cancion -> Buscará la canción en la lista
basándose en el nombre. Utilizar Iterator para recorrer la lista, que parará cuando encuentre la
canción.
• encontrarCancionesPorArtista(String artista): ArrayList<Cancion> -> Buscará las
canciónes en la lista basándose en el artista. Utilizar Iterator para recorrer la lista.
Programación