En la frase:
Cita: "Si la cantidad actual es mayor que la capacidad máxima de la cafetera, la ajustará al máximo"
Creo que se refiere a que si el constructor Cafetera recibe un cantidadActual que es mayor que capacidadMaxima, entonces debes rebajar cantidadActual a capacidadMaxima, ya que superar la capacidad máxima de una cafetera no tiene sentido.
Por tanto sería:
Código Java:
Ver originalpublic Cafetera(int capacidadMaxima, int cantidadActual) {
_cantidadActual
= Math.
min(cantidadActual, capacidadMaxima
); _capacidadMaxima = capacidadMaxima;
}
Por otra parte:
Código Java:
Ver originalpublic Cafetera(int capacidadMaxima) {
this(capacidadMaxima, 0);
}
debería ser:
Código Java:
Ver originalpublic Cafetera(int capacidadMaxima) {
this(capacidadMaxima, capacidadMaxima);
}
Ya que te dice que también inicialices la cantidadActual a la capacidadMaxima especificada.
Por otra parte, a la hora de servir la taza debes evitar que _cantidadActual se quede en número negativo, es decir, que tomes más de lo que tiene actualmente la cafetera:
Código Java:
Ver originalpublic void servirTaza(int tamanoTaza) {
_cantidadActual
= Math.
max(0, _cantidadActual
- tamanoTaza
);}
Puede que me haya equivocado en algo o tengas más errores, lo he hecho deprisa. De todas formas haz pruebas con los casos que te den para que puedas comprobar si está funcionando correctamente. Y usa printf para mostrar los resultados obtenidos. No podemos hacer todo el trabajo por ti.