Код IT
← Каталог

Учебные примеры ООП — Автомобиль

Пробег, расход топлива и напоминание о техобслуживании.

groovy groovyencyclopediaoop-practice15 embed URL статья в энциклопедии
Groovy main.groovy
class Car {
    static final int SERVICE_INTERVAL = 15000
    static final double FUEL_PER_KM = 0.1
    String brand
    double fuel
    int mileage

    Car(String brand) {
        this.brand = brand
        this.fuel = 40.0
        this.mileage = 0
    }

    void refuel(double liters) {
        fuel += liters
        println String.format('Заправка: +%.0f л. Топливо: %.1f л', liters, fuel)
    }

    void drive(int km) {
        double needed = km * FUEL_PER_KM
        if (needed > fuel) {
            println 'Ошибка: недостаточно топлива'
            return
        }
        fuel -= needed
        mileage += km
        println String.format('Проехали %d км. Топливо: %.1f л. Пробег: %d км', km, fuel, mileage)
        if (mileage >= SERVICE_INTERVAL) {
            println '⚠️ ВНИМАНИЕ: требуется техобслуживание!'
        }
    }
}

def car = new Car('Lada')
car.refuel(10)
car.drive(5000)
car.drive(11000)
class Car {
    static final int SERVICE_INTERVAL = 15000
    static final double FUEL_PER_KM = 0.1
    String brand
    double fuel
    int mileage

    Car(String brand) {
        this.brand = brand
        this.fuel = 40.0
        this.mileage = 0
    }

    void refuel(double liters) {
        fuel += liters
        println String.format('Заправка: +%.0f л. Топливо: %.1f л', liters, fuel)
    }

    void drive(int km) {
        double needed = km * FUEL_PER_KM
        if (needed > fuel) {
            println 'Ошибка: недостаточно топлива'
            return
        }
        fuel -= needed
        mileage += km
        println String.format('Проехали %d км. Топливо: %.1f л. Пробег: %d км', km, fuel, mileage)
        if (mileage >= SERVICE_INTERVAL) {
            println '⚠️ ВНИМАНИЕ: требуется техобслуживание!'
        }
    }
}

def car = new Car('Lada')
car.refuel(10)
car.drive(5000)
car.drive(11000)