El precio total de un coche se calcula aplicando un IVA al precio marcado.
Este IVA puede variar (por defecto el IVA es del 16%), pero será siempre el mismo para todos los coches.
Proporcionad métodos para cambiar el IVA, calcular el precio total y mostrar el coche como cadena de caracteres con el formato "nombre
public class EjCoches {
static public void main(String[] args) {
Coche[] cs = { new Coche(" Seat Panda", 15000),
new CocheImportado("Ferrari T-R", 65000, 8000),
new Coche("Seat Toledo", 21000),
new CocheImportado("Jaguar XK", 41000, 6000),
new CocheImportado("Porche GT3", 44000, 7000) };
for(Coche c : cs) {
System.out.println(c);
}
// Cambiamos el iva a todos los coches
Coche.setPiva(0.18);
System.out.println("Con IVA de 18%");
for(Coche c : cs) {
System.out.println(c);
}
}
}
Y aquí los resultados del test:
Seat Panda -> 17400.0 Ferrari T-R -> 83400.0 Seat Toledo -> 24360.0 Jaguar XK -> 53560.0 Porche GT3 -> 58040.0 Con IVA de 18% Seat Panda -> 17700.0 Ferrari T-R -> 84700.0 Seat Toledo -> 24780.0 Jaguar XK -> 54380.0 Porche GT3 -> 58920.0
Ahora os dejo el código de la clase Coche:
public class Coche {
private String nombre;
private double precio;
public static double PIVA = 0.16;
public Coche(String n, double p) {
nombre = n;
precio = p;
}
public double precioTotal() {
return precio*(1+PIVA);
}
public static void setPiva( double i) {
PIVA = i;
}
public String Nombre() {
return nombre;
}
public String toString() {
return this.Nombre() + " -> " + this.precioTotal();
}
}
Y el de la clase CocheImportado:
public class CocheImportado extends Coche{
private double homologacion;
public CocheImportado(String nombre, double p, double h) {
super(nombre, p);
homologacion = h;
}
public double precioTotal() {
return super.precioTotal()+homologacion;
}
}
Lo único que hay que recalcar es que para la clase Coche Importado hemos usado un "super(nombre, p);" en el constructor. Ésto lo que dice es algo como "CocheImportado es un coche con las caracterñisticas nombre y p" pero que además tiene otro valor más.
También hemos usado super en el método precioTotal. De esa forma calculamos el precioTotal del coche tal y como lo calcularía el otro método. De esta forma nos ahorramos bastante que escribir ^^
Saludos ;)
No hay comentarios:
Publicar un comentario