Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
5
respuestas

Proyecto final

package com.lcastillodv.reproductor.principal;
import com.lcastillodv.reproductor.modelos.Cancion;
import com.lcastillodv.reproductor.modelos.Favoritos;
import com.lcastillodv.reproductor.modelos.Podcast;


public class Main {
    public static void main(String[] args) {
        // Crear una canción
        Cancion cancion = new Cancion("Bohemian Rhapsody", 5.55, "Queen", "Rock");
        cancion.reproduciendo();
        cancion.reproducir();
        cancion.mostrarInfoCancion();

        for (int i = 0; i < 100; i++) {
            cancion.darMeGusta();
        }
        for (int i = 1; i < 2000; i++) {
            cancion.reproducir();
        }

        System.out.println("Reproducciones: " + cancion.getReproducciones());
        System.out.println("Me gusta: " + cancion.getMeGusta());

        Favoritos favoritos = new Favoritos();
        favoritos.agregarFavorito(cancion);


        // Crear un podcast
        Podcast podcast = new Podcast("El Show de Java", 45.0, "Juan Perez", 10);
        podcast.reproduciendo();
        podcast.reproducir();
        podcast.darMeGusta();
        podcast.mostrarInfoPodcast();

        for (int i = 1; i < 100; i++) {
            podcast.darMeGusta();
        }
        for (int i = 1; i < 8000; i++) {
            podcast.reproducir();
        }

        System.out.println("Reproducciones: " + podcast.getReproducciones());
        System.out.println("Me gusta: " + podcast.getMeGusta());

        favoritos.agregarFavorito(podcast);

    }
}
5 respuestas
package com.lcastillodv.reproductor.modelos;

public class Audio {
    private String titulo;
    private double duracion; // en minutos
    private int reproducciones;
    private int meGusta;
    private double clasificacion;

    // Constructor
    public Audio(String titulo, double duracion) {
        this.titulo = titulo;
        this.duracion = duracion;
        this.reproducciones = 0;
        this.meGusta = 0;
        this.clasificacion = 0.0;
    }

    // Método para reproducir el audio
    public void reproducir() {
        reproducciones++;

    }

    public void reproduciendo() {
        System.out.println("Reproduciendo: " + titulo);
    }

    // Método para dar "me gusta"
    public void darMeGusta() {
        meGusta++;
    }

    // Getters y setters (Encapsulación)
    public String getTitulo() {
        return titulo;
    }

    public void setTitulo(String titulo) {
        this.titulo = titulo;
    }

    public double getDuracion() {
        return duracion;
    }

    public void setDuracion(double duracion) {
        this.duracion = duracion;
    }

    public int getReproducciones() {
        return reproducciones;
    }

    public int getMeGusta() {
        return meGusta;
    }

    public double getClasificacion() {
        return clasificacion;
    }

    public void setClasificacion(double clasificacion) {
        this.clasificacion = clasificacion;
    }
}
package com.lcastillodv.reproductor.modelos;

public class Cancion extends Audio {
    private String artista;
    private String genero;

    public double getClasificacion() {
        if (getMeGusta() > 5000) {
            return 5.0;
        } else {
            return 3.0;
        }
    }

    // Constructor
    public Cancion(String titulo, double duracion, String artista, String genero) {
        super(titulo, duracion); // Llama al constructor de la superclase (Audio)
        this.artista = artista;
        this.genero = genero;
    }

    // Método específico para mostrar información de la canción
    public void mostrarInfoCancion() {
        System.out.println("Título: " + getTitulo());
        System.out.println("Artista: " + artista);
        System.out.println("Género: " + genero);
        System.out.println("Duración: " + getDuracion() + " min");
    }

    // Getters y setters específicos
    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;
    }
}

package com.lcastillodv.reproductor.modelos;


public class Podcast extends Audio {
    private String anfitrion;
    private int episodios;

    @Override
    public double getClasificacion() {
        if (getReproducciones() >= 2000) {
            return 5.0;
        } else {
            return 3.0;
        }
    }

    // Constructor
    public Podcast(String titulo, double duracion, String anfitrion, int episodios) {
        super(titulo, duracion); // Llama al constructor de la superclase (Audio)
        this.anfitrion = anfitrion;
        this.episodios = episodios;
    }

    // Método específico para mostrar información del podcast
    public void mostrarInfoPodcast() {
        System.out.println("Título: " + getTitulo());
        System.out.println("Anfitrión: " + anfitrion);
        System.out.println("Número de episodios: " + episodios);
        System.out.println("Duración: " + getDuracion() + " min");
    }

    // Getters y setters específicos
    public String getAnfitrion() {
        return anfitrion;
    }

    public void setAnfitrion(String anfitrion) {
        this.anfitrion = anfitrion;
    }

    public int getEpisodios() {
        return episodios;
    }

    public void setEpisodios(int episodios) {
        this.episodios = episodios;
    }
}

package com.lcastillodv.reproductor.modelos;

public class Favoritos {
    public void agregarFavorito(Audio audio) {
        if (audio.getClasificacion() >= 4.0) {
            System.out.println(audio.getTitulo() + " De los mas escuchados.\n");
        } else {
            System.out.println(audio.getTitulo() + " No tan escuchado.\n");
        }
    }
}

Hola Luis, espero que estés bien

Considero su código muy bueno, en este momento no veo puntos de mejora. ¡Continúa con sus estudios y éxito en su carrera!

Gracias por compartir tu ejercício práctico con nosotros! Tu contribución es fundamental para el crecimiento de nuestra comunidad en Alura. Sigue comprometido y no dudes en regresar al foro en caso que tengas alguna duda o dificultad.

¡Abrazos y buenos estudios!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios!