package br.com.alura.minhasmusicas.modelos;
public class Audio {
private String titulo;
private int duracao;
private int totalReproducoes;
private int totalCurtidas;
private int classificacao;
public void curtir() {
this.totalCurtidas++;
}
public void reproduzir(){
this.totalReproducoes++;
}
public void exibirFicha(){
System.out.println("Titulo: " + getTitulo());
System.out.println("duracao: " +getDuracao());
}
public String getTitulo() {
return titulo;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
public int getDuracao() {
return duracao;
}
public int getTotalReproducoes() {
return totalReproducoes;
}
public int getTotalCurtidas() {
return totalCurtidas;
}
public int getClassificacao() {
return classificacao;
}
}
package br.com.alura.minhasmusicas.modelos;
public class Musica extends Audio {
private String artista;
private String album;
private String genero;
@Override
public void exibirFicha(){
System.out.println("Artista: " + getArtista());
System.out.println("Albúm: " +getAlbum());
System.out.println("Genero: " +getGenero());
}
public String getArtista() {
return artista;
}
public void setArtista(String artista) {
this.artista = artista;
}
public String getGenero() {
return genero;
}
public void setGenero(String genero) {
this.genero = genero;
}
public String getAlbum() {
return album;
}
public void setAlbum(String album) {
this.album = album;
}
@Override
public int getClassificacao() {
if (this.getTotalCurtidas() > 500) {
return 10;
} else {
return 8;
}
}
}
package br.com.alura.minhasmusicas.modelos;
public class Podcast extends Audio {
private String apresentador;
private String descrico;
private String categoria;
@Override
public void exibirFicha(){
System.out.println("Apresentador: " + getApresentador());
System.out.println("Descrição: " +getDescrico());
System.out.println("Categoria: " +getCategoria());
}
public String getApresentador() {
return apresentador;
}
public void setApresentador(String apresentador) {
this.apresentador = apresentador;
}
public String getDescrico() {
return descrico;
}
public void setDescrico(String descrico) {
this.descrico = descrico;
}
public String getCategoria() {
return categoria;
}
public void setCategoria(String categoria) {
this.categoria = categoria;
}
@Override
public int getClassificacao() {
if (getTotalReproducoes() >= 1000){
return 10;
} else {
return 8;
}
}
}
package br.com.alura.minhasmusicas.modelos;
public class MinhasPreferidas {
public void inclui(Audio audio){
if (audio.getClassificacao() >= 9){
System.out.println("Um dos maiores sucessos do momento!");
} else {
System.out.println("Novo Lançamento!");
}
}
}
package br.com.alura.minhasmusicas.principal;
import br.com.alura.minhasmusicas.modelos.MinhasPreferidas;
import br.com.alura.minhasmusicas.modelos.Musica;
import br.com.alura.minhasmusicas.modelos.Podcast;
public class Main {
public static void main(String[] args) {
Musica musica = new Musica();
musica.setTitulo("Dá ponte pra cá");
musica.setArtista("Racionais Mcs");
musica.setAlbum("Nada com um dia após o Outro dia.");
musica.setGenero("Rap Nacional");
for (int i = 0; i < 500 ; i++) {
musica.curtir();
}
for (int i = 0; i < 1000; i++) {
musica.reproduzir();
}
musica.exibirFicha();
Podcast podcast = new Podcast();
podcast.setApresentador("Mano Brown");
podcast.setCategoria("Política e Cultura");
podcast.setDescrico("Debates com figuras publicas e artistas que representam a cultura das favelas e periferias do brasil");
for (int i = 0; i < 1500 ; i++) {
podcast.curtir();
}
for (int i = 0; i < 5000; i++) {
podcast.reproduzir();
}
// podcast.exibirFicha();
MinhasPreferidas minhasPreferidas = new MinhasPreferidas();
minhasPreferidas.inclui(musica);
minhasPreferidas.inclui(podcast);
}
}