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

[Proyecto] Desafío construyendo nueva aplicación

public class VentaLibros {

public static void main(String[] args) {

    Libreria libreria = new Libreria();
    libreria.setIsbn("978-84-415-4414-7");
    libreria.setTitulo("Manual Imprecindible Curso Desarrolladores Java ");
    libreria.setPrecio(99.40);
    libreria.setCantidad(2);

    System.out.println("  ISBN del Libro: "+libreria.getIsbn());
    System.out.println("Nombre del Libro: "+libreria.getTitulo());
    System.out.println("          Precio: "+libreria.getPrecio());
    System.out.println("        Cantidad: "+libreria.getCantidad());
    System.out.println("    Compra Total: "+ libreria.compraTotal());
    System.out.println("       Descuento: "+libreria.descuento());
    System.out.println("   Total a Pagar: "+libreria.pagar());
}

}

public class Libro { private String isbn; private String titulo; private double precio;

public String getIsbn() {
    return isbn;
}
public void setIsbn(String isbn) {
    this.isbn = isbn;
}

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

public double getPrecio() {
    return precio;
}
public void setPrecio(double precio) {
    this.precio = precio;
}

}

public class Libreria extends Libro{ private int cantidad;

public int getCantidad() {
    return cantidad;
}

public void setCantidad(int cantidad) {
    this.cantidad = cantidad;
}

public double compraTotal(){
    double total= getPrecio() * getCantidad();
    return total;
}

@Override
public double descuento(){
    return (getPrecio()*getCantidad()*.10);
}

@Override
public double pagar(){
    return compraTotal()-descuento();
}

}

package libreria.CalculaDescuento;

public interface CalculaDescuento { double descuento(); }

package libreria.CalculaDescuento;

public interface TotalAPagar { double pagar(); }

ISBN del Libro: 978-84-415-4414-7 Nombre del Libro: Manual Imprecindible Curso Desarrolladores Java Precio: 99.4 Cantidad: 2 Compra Total: 198.8 Descuento: 19.880000000000003 Total a Pagar: 178.92000000000002

1 respuesta

Hola Wilder, espero que estés bien

¡Espero que estés disfrutando del curso! He revisado tu código y parece que estás en el camino correcto al aplicar los conceptos de orientación a objetos. Sin embargo, he notado algunos detalles que podrías ajustar para mejorar la estructura de tu aplicación.

  1. Interfaces Implementadas: Veo que has declarado las interfaces CalculaDescuento y TotalAPagar, pero no las estás implementando en ninguna de tus clases. Podrías implementar estas interfaces en la clase Libreria para asegurar que las funciones descuento() y pagar() están correctamente integradas con el uso de interfaces. Aquí tienes un ejemplo de cómo hacerlo:

    public class Libreria extends Libro implements CalculaDescuento, TotalAPagar {
        // Resto del código...
    }
    
  2. Sobrescritura de Métodos: En Java, cuando sobrescribes métodos de una interfaz, no necesitas usar la anotación @Override a menos que estés sobrescribiendo un método de una clase base. Puedes eliminar @Override de los métodos descuento() y pagar() si solo los implementas desde la interfaz.

  3. Precisión de Decimales: Los resultados que estás obteniendo para el descuento y el total a pagar tienen muchos decimales. Puedes utilizar la clase BigDecimal para manejar la precisión decimal de una manera más controlada. Aquí tienes un ejemplo de cómo podrías modificar el método pagar():

    public double pagar(){
        BigDecimal total = BigDecimal.valueOf(compraTotal());
        BigDecimal descuento = BigDecimal.valueOf(descuento());
        return total.subtract(descuento).setScale(2, RoundingMode.HALF_UP).doubleValue();
    }
    

Estos cambios te ayudarán a seguir aplicando los principios de la programación orientada a objetos de manera más efectiva. Espero que estas sugerencias te sean útiles en tu proyecto.

¡Espero haber ayudado y buenos estudios!