Segue código do meu desafio concluido.
package br.com.diogo.screenmatch.DesafioAudio;
public abstract class Audio {
private String titulo;
private int totalReproducoes;
private int curtidas;
public String getTitulo() {
return titulo;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
public void reproduz() {
totalReproducoes++;
}
public void curte() {
curtidas++;
}
public int getCurtidas() {
return curtidas;
}
public int getTotalReproducoes() {
return totalReproducoes;
}
public abstract int getClassificacao();
}
package br.com.diogo.screenmatch.DesafioAudio;
public class Musica extends Audio {
private String artista;
private String album;
private String genero;
public String getArtista() {
return artista;
}
public void setArtista(String artista) {
this.artista = artista;
}
public String getAlbum() {
return album;
}
public void setAlbum(String album) {
this.album = album;
}
public String getGenero() {
return genero;
}
public void setGenero(String genero) {
this.genero = genero;
}
@Override
public int getClassificacao() {
if (getCurtidas() > 100) {
return 5;
} else {
return 3;
}
}
}
package br.com.diogo.screenmatch.DesafioAudio;
public class Podcast extends Audio {
private String titulo;
private String apresentador;
private String descricao;
public String getTitulo() {
return titulo;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
public String getApresentador() {
return apresentador;
}
public void setApresentador(String apresentador) {
this.apresentador = apresentador;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
@Override
public int getClassificacao() {
if (getTotalReproducoes() >= 1000) {
return 5;
} else if (getTotalReproducoes() >= 500) {
return 4;
} else {
return 2;
}
}
}
package br.com.diogo.screenmatch.DesafioAudio;
public class MinhasPreferidas {
public void inclui(Audio audio) {
if (audio.getClassificacao() >= 4) {
System.out.println(audio.getTitulo() + " Está entre os preferidos do momento!");
} else {
System.out.println(audio.getTitulo() + " Pode melhorar :(");
}
}
}
package br.com.diogo.screenmatch.DesafioAudio;
public class Main {
public static void main(String[] args) {
Musica musica = new Musica();
musica.setTitulo("Drown");
musica.setArtista("Bring Me The Horizon");
musica.setAlbum("That's the Spirit");
musica.setGenero("Rock");
for (int i = 0; i < 150; i++){
musica.curte();
}
Podcast podcast = new Podcast();
podcast.setTitulo("Podpah");
podcast.setApresentador("Igão e Mitico");
podcast.setDescricao("Assuntos variados");
for (int i = 0; i < 800; i++){
podcast.reproduz();
}
MinhasPreferidas minhasPreferidas = new MinhasPreferidas();
minhasPreferidas.inclui(musica);
minhasPreferidas.inclui(podcast);
}
}
Gostei bastante de desenvolver pude consolidar mais os conceitos de Herança, Abstração, Polimorfismo e Encapsulamento