Estructura del Proyecto
Codigo:
Clase Main:
Clase Audio:
package com.uni.pe.modelos;
public class Audio implements Reproducible {
private String titulo;
private double duracion;
private int totalReproducciones;
private int cantidadMeGusta;
private double calificacion;
public Audio(String titulo, double duracion, int totalReproducciones, int cantidadMeGusta) {
this.titulo = titulo;
this.duracion = duracion;
this.totalReproducciones = totalReproducciones;
this.cantidadMeGusta = cantidadMeGusta;
}
public double getCalificacion() {
return ((double) this.totalReproducciones / this.cantidadMeGusta);
}
public void fichaAudio() {
System.out.println("Titulo: " + this.titulo);
System.out.println("Duracion: " + this.duracion);
System.out.println("Total Reproducciones: " + this.totalReproducciones);
System.out.println("Cantidad Me Gusta: " + this.cantidadMeGusta);
System.out.println("Calificacion: " + this.getCalificacion());
}
//metodos getters and setters
@Override
public void reproducir() {
System.out.println("Reproduciendo: " + this.titulo);
totalReproducciones++;
}
@Override
public void pausar() {
System.out.println("Pausando: " + this.titulo);
}
@Override
public void detener() {
System.out.println("Deteniendo: " + this.titulo);
}
}
Clase Cancion:
package com.uni.pe.modelos;
public class Cancion extends Audio {
private String artista;
private String album;
private String genero;
public Cancion(String titulo, double duracion,int totalReproducciones, int cantidadMeGusta ,String artista, String album, String genero) {
super(titulo, duracion, totalReproducciones,cantidadMeGusta);
this.artista = artista;
this.album = album;
this.genero = genero;
}
//metodos getters and setters
}
Clase Podcast:
package com.uni.pe.modelos;
public class Podcast extends Audio {
private String Anfitrion;
private String tema;
private int numeroEpisodio;
public Podcast(String titulo, double duracion,int totalReproducciones, int cantidadMeGusta, String Anfitrion, String tema, int numeroEpisodio) {
super(titulo, duracion, totalReproducciones,cantidadMeGusta);
this.Anfitrion = Anfitrion;
this.tema = tema;
this.numeroEpisodio = numeroEpisodio;
}
//metodos getters and setters
}
Interface Reproducible:
package com.uni.pe.modelos;
public interface Reproducible {
void reproducir();
void pausar();
void detener();
}
Clase Musica Favorita:
package com.uni.pe.logica;
import com.uni.pe.modelos.Audio;
public class MusicaFavorita {
public void mostrarFavoritos(Audio audio) {
if (audio.getCalificacion() >= 8) {
System.out.println(audio.getTitulo() + " es una de tus canciones favoritas");
}
else {
System.out.println(audio.getTitulo() + " no es una de tus canciones favoritas");
}
}
}