Created
October 1, 2014 22:21
-
-
Save OlgaKulikova/c2002439cd7e80fdbe10 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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(); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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