Os comento mi problema por si alguien puede echarme un cable...estoy realizando un curso de Iniciación a java del ministerio de educación donde se plantea el siguiente problema (mi duda es solo la parte de incrementar los litros de aceite):
Desarrollar una clase llamada Motor que:
• Tenga dos atributos private de tipo int (litros de aceite) y de tipo int (CV).
• Tenga un constructor con un parámetro de tipo int para los CV. Los litros de aceite por defecto serán 0.
• Tenga un getter para cada uno de los atributos.
• Tenga un setter para los litros.
Desarrollar una clase llamada Coche que:
• Tenga un atributo private de tipo Motor, un atributo de tipo String (marca), otro de tipo String (modelo) y otro de tipo double con el precio acumulado con las averías.
• Tenga un constructor con dos parámetros de tipo String que inicialice la marca y el modelo.
• Tenga un getter para cada uno de los atributos.
• Un método acumularAveria que incrementará el importe gastado en averías.
Desarrollar una clase llamada Garaje que:
• Tendrá tres atributos, un coche, un String con la avería asociada y el número de coches que ha ido atendiendo.
• El garaje solo podrá atender a un coche en cada momento. Controlar esta premisa.
• Tenga un método aceptarCoche que recibe un parámetro de tipo Coche y la avería asociada. El garaje solo podrá atender a un coche en cada momento. Si ya esta atendiendo uno, que devuelva un false.
• Tenga un método devolverCoche que dejara al garaje en estado de aceptar un nuevo coche.
Desarrollar una clase llamada Actividad2 que en su método main:
• Cree un garaje.
• Cree 2 coches.
• El garaje irá cogiendo los coches y devolviéndolos, acumulando un importe aleatorio (Math.random()) de la avería tratada.
• Si la avería del coche es “aceite” incrementar en 10 los litros de aceite.
• Los coches entrarán al menos 2 veces en el garaje.
• Mostrar la información de los coches al final del main.
Nota: Para calcular un número aleatorio usaremos Math.random() que devuelve un double entre 0.0 y 1.0 MI SOLUCION ES:
- CLASE MOTOR -
Código Java:
Ver originalpublic class Motor {
private int litros;
private int cv;
public Motor (int caballos){
this.litros = 0;
this.cv = caballos;
}
//getters
public int getLitros(){
return this.litros;
}
public int getCV(){
return this.cv;
}
//setters
public void setLitros(int l){
litros=l;
}
}
- CLASE COCHE -
Código Java:
Ver originalpublic class Coche {
private Motor motor;
private double precio_averias;
this.marca = mar;
this.modelo = mod;
}
//getters
public Motor getMotor(){
return this.motor;
}
return this.marca;
}
return this.modelo;
}
public double getPrecioAverias(){
return this.precio_averias;
}
//Metodo que incrementa gasto en averias
public void acumularAveria (double averia){
System.
out.
println("Precio del arreglo: " +averia
); this.precio_averias = this.precio_averias + averia;
}
- CLASE GARAJE -
Código Python:
Ver originalpublic class Garaje {
private Coche c;
private String averia_asociada;
private int num_coches;
int l=0;
public Garaje(){
this.c = null;
this.averia_asociada = "";
this.num_coches = 0;
}
public void aceptarCoches (Coche coche, String averiacoche){
this.c=coche;
this.averia_asociada = averiacoche;
if (num_coches==0){
System.out.println("El coche ha podido entrar");
num_coches=1;
/*AQUI ESTA MI PROBLEMA, COMO ACUMULO LOS LITROS DE ACEITE PARA CADA COC HE?*/
if(this.averia_asociada.equals("aceite")){
int lit=c.getMotor().getLitros();
this.c.getMotor().setLitros(lit);
System.out.println("Total de litros de aceite repostados por este coche: " +c.getMotor().getLitros());
}
coche.acumularAveria(100*Math.random());
}
else{
System.out.println("El garaje se encuentra ocupado");
}
}
public void devolverCoches (){
System.out.println("Un coche sale del garaje");
num_coches = 0;
}
}
-CLASE ACTIVIDAD 2-
Código Java:
Ver originalpublic class Actividad2 {
public static void main
(String[] args
) {
Garaje garaje = new Garaje();
Motor coche2= new Motor(110);
Coche primero = new Coche("Peugeot","205");
Coche segundo = new Coche("Seat","Leon");
garaje.aceptarCoches(primero,"aceite");
garaje.aceptarCoches(segundo,"filtros");
garaje.devolverCoches();
garaje.aceptarCoches(segundo,"aceite");
garaje.devolverCoches();
garaje.aceptarCoches(primero,"motor");
garaje.devolverCoches();
garaje.aceptarCoches(segundo,"aceite");
primero.getPrecioAverias();
System.
out.
println("El coche: " + primero.
getMarca() + " " +primero.
getModelo()+ " se ha gastado: " +primero.
getPrecioAverias());
System.
out.
println("El coche: " + segundo.
getMarca() + " " +segundo.
getModelo()+ " se ha gastado: " +segundo.
getPrecioAverias());
}
}
Mi problema es como acumular los litros de aceite a cada coche, parece que me falta inicializar el motor pero no se como... Agradeceria cualquier tipo de ayuda. MUCHAS GRACIAS!!