Не могу понять, в чём проблема. Вроде всё верно.
package com.javarush.task.task29.task2909.car;
import java.util.Date;
public class Car {
static public final int CABRIOLET = 2;
static public final int SEDAN = 1;
static public final int TRUCK = 0;
double fuel;
public double summerFuelConsumption;
public double winterFuelConsumption;
public double winterWarmingUp;
private int type;
private boolean driverAvailable;
private int numberOfPassengers;
protected Car(int type, int numberOfPassengers) {
this.type = type;
this.numberOfPassengers = numberOfPassengers;
}
protected Car(int numberOfPassengers) {
}
public void fill(double numberOfLiters) throws Exception {
if (numberOfLiters < 0)
throw new Exception();
fuel += numberOfLiters;
}
public double getTripConsumption(Date date, int length, Date SummerStart, Date SummerEnd) {
if (isSummer(date,SummerStart,SummerEnd)) {
return getWinterConsumption(length);
} else {
return getSummerFuelConsumption(length);
}
}
public int getNumberOfPassengersCanBeTransferred() {
if (!isDriverAvailable())
return 0;
if (fuel <= 0)
return 0;
return numberOfPassengers;
}
public boolean isDriverAvailable() {
return driverAvailable;
}
public void setDriverAvailable(boolean driverAvailable) {
this.driverAvailable = driverAvailable;
}
public void startMoving() {
if (numberOfPassengers > 0) {
fastenPassengersBelts();
fastenDriverBelt();
} else {
fastenDriverBelt();
}
}
public void fastenPassengersBelts() {
}
public void fastenDriverBelt() {
}
public int getMaxSpeed() {
if (type == TRUCK)
return 80;
if (type == SEDAN)
return 120;
return 90;
}
public static Car create(int type, int numberOfPassengers){
Car car=null;
switch (type){
case 0:car = new Truck(numberOfPassengers);
break;
case 1:car = new Sedan(numberOfPassengers);
break;
case 2:car = new Cabriolet(numberOfPassengers);
}
return car;
}
public boolean isSummer(Date date , Date summerStart, Date summerEnd){
if (date.after(summerStart)&&date.before(summerEnd)){
return true;
}
return false;
}
public double getWinterConsumption(int length){
return (winterFuelConsumption*length)+winterWarmingUp;
}
public double getSummerFuelConsumption(int length){
return (summerFuelConsumption*length);
}
}