Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

[Proyecto] Proyecto Final Poo

Mi clase Madre se llama Audio

package com.aluracursos.modelos;

public class Audio {

    protected String titulo;
    private int totalDeReproducciones;
    private int totalDeMeGusta;
    private int clasificacion;

    public void meGusta() {
        this.totalDeMeGusta++;
    }

    public void reproduce() {
        this.totalDeReproducciones++;
    }

    public String getTitulo() {
        return titulo;
    }

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

    public int getTotalDeReproducciones() {
        return totalDeReproducciones;
    }

    public void setTotalDeReproducciones(int totalDeReproducciones) {
        this.totalDeReproducciones = totalDeReproducciones;
    }

    public int getTotalDeMeGusta() {
        return totalDeMeGusta;
    }

    public void setTotalDeMeGusta(int totalDeMeGusta) {
        this.totalDeMeGusta = totalDeMeGusta;
    }

    public int getClasificacion() {
        return clasificacion;
    }

    public void setClasificacion(int clasificacion) {
        this.clasificacion = clasificacion;
    }
}

Clases Hijas

package com.aluracursos.modelos;

public class Cancion extends Audio {
    private String album;
    private String cantante;
    private String genero;

    @Override
    public int getClasificacion() {
        if (getTotalDeMeGusta() > 5000) {
            return 8;
        } else {
            return 4;
        }
    }

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

    public String getAlbum() {
        return album;
    }

    public void setAlbum(String album) {
        this.album = album;
    }

    public String getCantante() {
        return cantante;
    }

    public void setCantante(String cantante) {
        this.cantante = cantante;
    }

    public String getGenero() {
        return genero;
    }

    public void setGenero(String genero) {
        this.genero = genero;
    }

}
package com.aluracursos.modelos;

public class Podcast extends Audio {
    private String presentador;
    private String descripcion;

    @Override
    public int getClasificacion() {
        if (getTotalDeReproducciones() >= 2000) {
            return 9;
        } else {
            return 2;
        }
    }

    public String getPresentador() {
        return presentador;
    }

    public void setPresentador(String presentador) {
        this.presentador = presentador;
    }

    public String getDescripcion() {
        return descripcion;
    }

    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }
}
package com.aluracursos.modelos;

public class Mifavorito {

    public void adicionar(Audio audio) {
        if (audio.getClasificacion() < 8) {
            System.out.println("Animo puedes llegar a ser uno de los mas escuchados");
            return; // Salimos temprano si la clasificación es menor a 8
        }

        System.out.println(audio.getTitulo() + " Es de lo más votado hasta el momento");
    }

}
package com.aluracursos.modelos.principal;

import com.aluracursos.modelos.Cancion;
import com.aluracursos.modelos.Mifavorito;
import com.aluracursos.modelos.Podcast;

public class Principal {

    public static void main(String[] args) {
        Cancion micancion = new Cancion();
        micancion.setTitulo("As long as you love me ");
        micancion.setCantante("Justin Bieber");

        Podcast miPodcast = new Podcast();
        miPodcast.setPresentador("Juanpis");
        miPodcast.setTitulo("El Exito  de Justin");

        // cancion

        for (int i = 0; i < 15000; i++) {
            micancion.meGusta();
        }

        for (int i = 0; i < 200; i++) {
            micancion.reproduce();
        }

        // podcast

        for (int i = 0; i < 100; i++) {
            miPodcast.meGusta();
        }

        for (int i = 0; i < 8; i++) {
            miPodcast.reproduce();
        }

        System.out.println("Total de reproducciones: " + micancion.getTotalDeReproducciones());
        System.out.println("Total de me gusta: " + micancion.getTotalDeMeGusta());

        Mifavorito mifavorito = new Mifavorito();
        mifavorito.adicionar(miPodcast);
        mifavorito.adicionar(micancion);

    }

}
1 respuesta

Hola, María, espero que estés bien

Gracias por compartir tu código. Parece que estás trabajando en un proyecto de orientación a objetos en Java, y has implementado clases para manejar audios, canciones y podcasts. Tu código se ve bastante bien estructurado, pero si estás buscando mejorar o solucionar algún problema específico, aquí van algunas sugerencias:

  1. Uso de protected: En tu clase Audio, has declarado titulo como protected. Esto significa que las clases hijas pueden acceder directamente a este campo, lo cual es útil en algunos casos. Sin embargo, si prefieres encapsular completamente el acceso a los campos, podrías considerar usar métodos get y set en lugar de acceder directamente a los campos.

  2. Sobrescritura de métodos: Veo que has sobrescrito el método getClasificacion() en las clases Cancion y Podcast. Esto es una buena práctica para personalizar el comportamiento de las clases hijas. Asegúrate de que la lógica de clasificación se alinea con los requisitos de tu proyecto.

  3. Impresiones en consola: En la clase Mifavorito, estás imprimiendo mensajes basados en la clasificación de los audios. Esto es genial para obtener retroalimentación sobre cómo se están clasificando tus objetos.

  4. Pruebas en Principal: En tu clase Principal, estás creando instancias de Cancion y Podcast y probando sus métodos. Esto es una buena manera de verificar que tu lógica funciona como esperas.

Si hay algo específico que te gustaría mejorar o si encuentras un problema que necesitas resolver, no dudes en especificarlo.

Espero haber ayudado y buenos estudios!