Oi pessoal deixo aqui minha sugestão de como resolvi meu desafio, e um spoiler de meus gostos musicais e de esporte hue hue Interface
package primeirosPassos.Desafio.Final.Poo;
public interface AcoesDeMidia {
void curtir(int curtida);
void reproduzir(boolean pausa);
}
Classe mãe Audio
package primeirosPassos.Desafio.Final.Poo;
public class Audio implements AcoesDeMidia {
private String titulo;
private int duracao;
protected int totalCurtidas = 0;
protected int totalReproducoes = 0;
protected int contCurtidas = 0;
protected int contReproducoes = 0;
private boolean pausado = true;
public String getTitulo() {
return titulo;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
public int getDuracao() {
return duracao;
}
public void setDuracao(int duracao) {
this.duracao = duracao;
}
@Override
public void curtir(int curtida) {
totalCurtidas += curtida;
contCurtidas++;
}
public void ExibirCurtidas() {
if (contCurtidas > 0) {
int avaliacaoFinal = totalCurtidas / contCurtidas;
System.out.println("Total da nota: " + totalCurtidas + ". Avaliado " + contCurtidas + " vezes. Avaliação média: " + avaliacaoFinal);} else {System.out.println("Ainda sem curtidas registradas");}}
@Override
public void reproduzir(boolean pausa) {
this.pausado = pausa;
if (pausado) {
System.out.println("Pausado");
} else {
totalReproducoes++;
System.out.println("Play");
}
}
public void contagemRepro() {
if (contReproducoes > 0) {
System.out.println("Play");
} else {
System.out.println("Pausado");
}
System.out.println("Foi escutado " + totalReproducoes + " " + (totalReproducoes == 1 ? "reprodução" : "reproduções"));
}
}
Classes filhas Musica e Podcast
package primeirosPassos.Desafio.Final.Poo;
public class Musica extends Audio{
private String autor;
private String produtora;
private String album;
private String genero;
public String getAutor() {
return autor;
}
public void setAutor(String autor) {
this.autor = autor;
}
public String getProdutora() {
return produtora;
}
public void setProdutora(String produtora) {
this.produtora = produtora;
}
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;
}
public void ficha(){
System.out.println("| Artista: " + getAutor());
System.out.println("| Música: " + getTitulo());
System.out.println("| Produtora: " + getProdutora());
System.out.println("| Album: " + getAlbum());
System.out.println("| Duração: " + getDuracao());
System.out.println("| Genero: " + getGenero());
ExibirCurtidas();
contagemRepro();
}
}
package primeirosPassos.Desafio.Final.Poo;
public class Podcast extends Audio {
private String host;
protected String descricao;
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public void ficha(){
System.out.println("| Titulo: " + getTitulo());
System.out.println("| Host: " + getHost());
System.out.println("| Duração: " + getDuracao());
System.out.println("| Descrição: " + getDescricao());
ExibirCurtidas();
contagemRepro();
}
}