Помогите с валей договориться, уже заколебался
package com.javarush.task.task29.task2909.car;
import java.util.Date;
public abstract class Car {
static public final int TRUCK = 0;
static public final int SEDAN = 1;
static public final int CABRIOLET = 2;
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;
}
private boolean canPassengersBeTransferred() {
return this.isDriverAvailable() && this.fuel > 0;
}
public static Car create(int type, int numberOfPassengers) {
if (type==TRUCK)
return new Truck(numberOfPassengers);
else if (type==SEDAN)
return new Sedan(numberOfPassengers);
else if (type==CABRIOLET)
return new Cabriolet(numberOfPassengers);
else return null;
}
public static void main(String[] args) {
Car car = new Car() {
@Override
public int getMaxSpeed() {
return 0;
}
};
Car car1 = car.create(1, 4);
System.out.println(car1.toString());
}
protected Car() {
}
public void fill(double numberOfLiters) throws Exception {
if (numberOfLiters < 0)
throw new Exception();
fuel += numberOfLiters;
}
public boolean isSummer(Date date, Date summerStart, Date summerEnd) {
if (date.after(summerStart)&&date.before(summerEnd)) {
return true;
}
else {
return false;
}
}
public double getWinterConsumption(int length) {
return length * winterFuelConsumption + winterWarmingUp;
}
public double getSummerConsumption(int length) {
return summerFuelConsumption * length;
}
public double getTripConsumption(Date date, int length, Date SummerStart, Date SummerEnd) {
if (isSummer(date, SummerStart, SummerEnd)) {
return getSummerConsumption(length);
}
else {
return getWinterConsumption(length);
}
}
public int getNumberOfPassengersCanBeTransferred() {
if (canPassengersBeTransferred()) return numberOfPassengers;
else return 0;
}
public boolean isDriverAvailable() {
return driverAvailable;
}
public void setDriverAvailable(boolean driverAvailable) {
this.driverAvailable = driverAvailable;
}
public void startMoving() {
if (getNumberOfPassengersCanBeTransferred() > 0) fastenPassengersBelts();
fastenDriverBelt();
}
public void fastenPassengersBelts() {
}
public void fastenDriverBelt() {
}
public abstract int getMaxSpeed();
}