Skip to content

Instantly share code, notes, and snippets.

@OlgaKulikova
Created October 1, 2014 22:21
Show Gist options
  • Save OlgaKulikova/c2002439cd7e80fdbe10 to your computer and use it in GitHub Desktop.
Save OlgaKulikova/c2002439cd7e80fdbe10 to your computer and use it in GitHub Desktop.
package Cars;
public class Car {
static public int count = 0;
protected String name;
protected Engine engine;
protected double fuel, usedFuel;
public Car(String name, double volumeEngine, double fuel) {
this.name = name;
this.fuel = fuel;
engine = new Engine(0, volumeEngine);
count++;
}
public Car(String name, double volumeEngine, double mileage, double fuel) {
this.name = name;
this.fuel = fuel;
engine = new Engine(mileage, volumeEngine);
count++;
}
public String getName() {
return name;
}
public double getVolumeEngine() {
return engine.getVolumeEngine();
}
public double getMileage() {
return engine.getMileage();
}
public double getFuel() {
return fuel;
}
public double getUsingFuel() {
return engine.getUsingFuel();
}
public double getUsedFuel() {
return usedFuel;
}
public double leftFuel() {
return (fuel - usedFuel);
}
public void turnOn() {
engine.turnOn();
}
public void turnOff() {
engine.turnOff();
}
public void start(int speed, double hours) {
if ( ! engine.isStarted() || fuel == 0)
return;
double distance = hours * speed;
engine.addMileage(distance);
usedFuel += distance / 100 * engine.getUsingFuel();
}
}
package Cars;
public class Engine {
protected double mileage = 0;
protected boolean started;
protected double volumeEngine;
protected double usingFuel;
public Engine(double mileage, double volumeEngine) {
this.mileage = mileage;
this.volumeEngine = volumeEngine;
usingFuel = volumeEngine * 4;
}
public double getVolumeEngine() {
return volumeEngine;
}
public double getUsingFuel() {
return usingFuel;
}
public double getMileage() {
return mileage;
}
public void addMileage(double mileage) {
if (started)
this.mileage += mileage;
}
public boolean isStarted() {
return started;
}
public void turnOn() {
started = true;
}
public void turnOff() {
started = false;
}
}
package Cars;
public class MyClass {
public static void main(String[] args) {
Car bmw = new Car("BMW", 1.6, 20.0);
Car ferrari = new Car("Ferrari",2.0, 20000, 15.0);
bmw.turnOn();
ferrari.turnOn();
int[] speeds = new int[] {20, 60, 100};
for (int s : speeds)
bmw.start(s, 0.5);
for (int s : speeds)
ferrari.start(s, 1);
bmw.turnOff();
ferrari.turnOff();
System.out.println("Cars count: " + Car.count);
System.out.println("Автомобиль " + bmw.getName());
System.out.println("Объем двигателя " + bmw.getVolumeEngine());
System.out.println("Пробег " + bmw.getMileage() + " км");
System.out.println("Заправлен перед заездом на " + bmw.getFuel() + " л");
System.out.println("Расход топлива " + bmw.getUsingFuel() + " л на 100 км");
System.out.println("Потрачено топлива за последний заезд " + bmw.getUsedFuel() + " л");
System.out.println("Осталось топлива в баке " + bmw.leftFuel() + " л");
System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~");
System.out.println("Автомобиль " + ferrari.getName());
System.out.println("Объем двигателя " + ferrari.getVolumeEngine());
System.out.println("Пробег " + ferrari.getMileage() + " км");
System.out.println("Заправлен перед заездом на " + ferrari.getFuel() + " л");
System.out.println("Расход топлива " + ferrari.getUsingFuel() + " л на 100 км");
System.out.println("Потрачено топлива за последний заезд " + ferrari.getUsedFuel() + " л");
System.out.println("Осталось топлива в баке " + ferrari.leftFuel() + " л");
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment