introductionToProgramming/week10/cars/HybridCar.java
Daniel Bulant c91fd07e47 week 10
2025-11-05 13:08:47 +01:00

39 lines
1.1 KiB
Java

public class HybridCar implements Vehicle {
/** liters */
double fuel;
/** km per liter */
final double fuelMileage;
double electricalEnergy;
/** km per el energy point */
final double electricityMileage;
HybridCar(double fuelMileage, double electricityMileage) {
this.fuelMileage = fuelMileage;
this.electricityMileage = electricityMileage;
}
@Override
public int getRemainingRange() {
return (int)(fuel * fuelMileage + electricalEnergy * electricityMileage);
}
@Override
public int drive(int kms) {
// km
var range = getRemainingRange();
// km
var toDrive = Math.min(kms, range);
// km
var rangeEl = (int)(electricalEnergy * electricityMileage);
// km
var toDriveEl = Math.min(toDrive, rangeEl);
// km
var toDriveGas = toDrive - toDriveEl;
// l = 1/(km/l) * km
var consumptionGas = 1./fuelMileage * toDriveGas;
var consumptionEl = 1./electricityMileage * toDriveEl;
fuel -= consumptionGas;
electricalEnergy -= consumptionEl;
return toDrive;
}
}