при обучении по Шилдту (непонятен нюанс)

171
20 сентября 2021, 16:10

код ниже работает все отлично-непонятно другое int miles мы не задавали значений (расстояния) а задали их int dist = 252; По идее же тут вместо miles должно быть dist непонятно как он производит расчет если у miles нет значений

double fuelneeded(int miles) { return (double) miles/mpg; по идее dist\mpg=252\21 или 12 и получается 12 и 21 как при выводе

Заранее благодарен всем откликнувшимся!

//добавление конструктора
class Vehicle {
    int passengers;//количество пассажиров
    int fuelcap;//емкость топливного бака
    int mpg;//потребление топлива в милях на галлон
    //это конструктор класса Vehicle
    Vehicle(int p, int f, int m) {
        passengers = p;
        fuelcap = f;
        mpg = m;
    }
    //определить дальность поездки ТС
    int range() {
        return mpg * fuelcap;
    }
    //рассчитать объем топлива необходимого ТС для преодоления заданного расстояния
    double fuelneeded(int miles) {
        return (double) miles/mpg;
    }
}
public class VehConsDemo {
    public static void main(String[] args) {
        //полностью сконструировать объекты транспортных средств
        Vehicle minivan = new Vehicle(7,16,21);
        Vehicle sportscar = new Vehicle(2,14,12);
        double gallons;
        int dist = 252;
        gallons = minivan.fuelneeded(dist);
        System.out.println("Для преодоления "+dist+" миль минивэну требуется"+ gallons+" галлонов топлива");
        gallons = sportscar.fuelneeded(dist);
        System.out.println("Для преодоления "+dist+" миль спорткару требуется"+ gallons+" галлонов топлива");
    }
}

Для преодоления 252 миль минивэну требуется 12.0 галлонов топлива Для преодоления 252 миль спорткару требуется 21.0 галлонов топлива

Answer 1

miles - это аргумент метода fuelneeded(), переменная примет то значение, которое ей будет передано при вызове метода (в коде miles = dist).

Если бы вместо dist (fuelneeded(dist)) , метод вызывали с аргументом 5 (fuelneeded(5)) , то miles было бы равно 5

update

Аргументы в методах нужны для того, чтобы один и тот же метод мог производить операции с разными значениями (в данном случае рассчитывать сколько нужно бензина для любого указанного расстояния). Иначе потребовалось бы множество практически одинаковых методов.

Какую бы переменную или даже натуральное число не передали в метод, этот метод знает, что с ней делать и как посчитать результат, потому что внутри метода любое переданное ему значение всегда фигурирует как miles (имя переменной-аргумента в сигнатуре этого метода)

так же смотрите ответы на этот вопрос

READ ALSO
Сохранение изменений MariaDB

Сохранение изменений MariaDB

Как сохранить результат запроса в таблицу?

114
Свой шрифт в Тильде html-блок

Свой шрифт в Тильде html-блок

Нужна помощь/советМне необходимо в конструкторе сайтов https://tilda

181
Что такое замыкания в JS?

Что такое замыкания в JS?

Лексическое окружение понятно, а как понять замыкания в JSКакую функцию она выполняет

172
Не работает событие onclick

Не работает событие onclick

сразу же извиняюсь, если ошибка была глупойЕсть изображение, при нажатии на него, див с ид фильтр должен становиться блочным

114