Olá Rede !
Resolvi compartilhar a atualização de um projeto meu anterior criado após o último desafio do curso [Java: aplicando a Orientação a Objetos].
Nele resolvi implementar playlist personalizadas agora que aprendi o uso do Arraylist neste curso e ter visto a documentação sobre.
- Primeiramente fiz uma pequena alteração na SuperClasse:
package br.com.alura.javabeat.domain;
public class Audio {
// Restante do código omitido
public String getType() {
return "Audio";
}
}
E então as mudanças nas subclasses Music e Podcast:
- Music
package br.com.alura.javabeat.domain;
public class Music extends Audio implements Classification {
// Restante do código omitido
@Override
public String getType() {
return "Música";
}
}
- Podcast
package br.com.alura.javabeat.domain;
public class Podcast extends Audio implements Classification {
// Restante do código omitido
@Override
public String getType() {
return "Podcast";
}
}
Agora a implementação da classe Playlist
- Playlist
package br.com.alura.javabeat.domain;
import java.util.ArrayList;
import java.util.List;
public class Playlist {
private final String name;
// Lista que vai guardar os objetos do tipo Audio
private final List<Audio> audioList;
// Ao criar a Playlist, ela inicia uma lista vazia
public Playlist(String name) {
this.name = name;
this.audioList = new ArrayList<>();
}
public void addAudio(Audio audio) {
this.audioList.add(audio);
System.out.println("--- Adicionando Áudio ---");
System.out.println(audio.getTitle() + " foi adicionado à playlist " + this.name);
System.out.println();
}
public void showPlaylist() {
System.out.println("--- Playlist: " + getName() + " ---");
if (audioList.isEmpty()) {
System.out.println("Essa playlist está vazia");
} else {
for (Audio audio : audioList) {
System.out.println("[" + audio.getType() + "]" + " - " + audio.getTitle());
}
}
System.out.println("=".repeat(30));
}
public String getName() {
return name;
}
}
Execução do código:
package br.com.alura.javabeat.app;
import br.com.alura.javabeat.domain.Music;
import br.com.alura.javabeat.domain.Playlist;
import br.com.alura.javabeat.domain.Podcast;
public class Principal {
public static void main(String[] args) {
// Restante do código omitido
Playlist playlist = new Playlist("Favoritas");
playlist.addAudio(anita);
playlist.addAudio(alura);
// Testes
playlist.showPlaylist();
}
}
- Visão no console:
--- Adicionando Áudio ---
Show das Poderosas foi adicionado à playlist Favoritas
--- Adicionando Áudio ---
Aluracast foi adicionado à playlist Favoritas
--- Playlist: Favoritas ---
[Música] - Show das Poderosas
[Podcast] - Aluracast
==============================
Fico aberto a sugestões de melhorias e feedback de vocês.
Bons estudos!
Link do projeto: https://github.com/D4nN3t0/JavaBeat