Vamos a ir por partes para ver si consigo expresarme correctamente.
En primer lugar deberías haber colgado el método acumularAvería de la clase coche, ya que es ahí donde puede ser que tengas el problema.
Por otro lado, en la clase Garaje, más concretamente en el método aceptarCoche haces esto:
public boolean aceptarCoche
(Coche param1,
String dano
){ averia = dano;
nCochesAtendidos += 1;
if(cocheAdentro == true){
System.
out.
println("Ya hay un coche en el garage"); return false;
}
else{
cocheAdentro = true;
if(averia == "aceite"){
Motor motor = new Motor(10);
Motor.setLtAceite(10);
Coche.
acumularAveria(Math.
random()*1000); }
return true;
}
}
En primer lugar deberías comprobar al mismo entrar la condición de que no haya ningún coche dentro, porque si se da el caso de que hay uno dentro el método va a devolver false sí, pero has cambiado los valores de avería y nCochesAtendidos cuando eso no debería pasar ya que el coche no se va a quedar dentro.
También en esa clase tienes un atributo de tipo Coche que no usas para nada.
En el método Main me imagino que a la hora de imprimir por pantalla el tipo de avería te mostrará la misma, eso es por que estás mostrando la información cuando ya han pasado los dos coches. Tendrías que mostrarla en cuanto salga del garaje y antes de que entre otro coche, porque si no la información de la avería se pierde, no se si me explico correctamente.
Postea el método acumularAveria y getImporteAveria y te podremos ayudar con eso.
Saludos y no te preocupes, al empezar siempre cuesta un poco, pero luego la cosa sale sola