/
EugenyCh7
/
JavaAndScalaLessons
Обзор
Документация
Войти
/
EugenyCh7
/
JavaAndScalaLessons
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
JavaTest/src/ch2/ex9/Car.java
58 строк
2 KB
Eugeny Chekmarev
IDEA update
15 июн 2021, 21:11
15 июн 2021, 21:11
47fadf9
Код
Авторство
О чём код?
package ch2.ex9; public class Car { private final double gasMileage; // Расход бензина (в л/км) private double petrol; // Литров бензина private double path = 0.0; // Пройденный путь (>= distance) private double distance = 0.0; // Расстояние от начала координат Car(double gasMileage, double petrol) { this.gasMileage = gasMileage; this.petrol = petrol; } Car(double gasMileage) { this.gasMileage = gasMileage; this.petrol = 0.0; } public void pourGasoline(double petrol) { if (petrol < 0.0) throw new IllegalArgumentException("Количество заливаемого топлива не может быть отрицательным"); this.petrol += petrol; } public double getPath() { return path; } public double getDistance() { return distance; } public double getPetrol() { return petrol; } public void move(double x) { double abs = Math.abs(x); petrol -= abs * gasMileage; distance += x; path += abs; if (petrol < 0.0) { double mx = -petrol / gasMileage; double relation = 1.0 - mx / abs; System.out.printf("Автомобиль проехал лишь %.2f%% пути\n\n", relation * 100.0); petrol = 0.0; distance -= mx * Math.signum(x); path -= mx; } } public void report() { System.out.printf("Уровень бензина : %.3f л\n", getPetrol()); System.out.printf("Пройденный путь : %.3f км\n", getPath()); System.out.printf("Расстояние от начала пути : %.3f км\n", getDistance()); System.out.println(); } }