-
Title:
-
Description:
-
Сначала мы изменим сигнатуру
метода calculatePricе,
-
чтобы на выходе получить
данные верного типа.
-
Будем также считать, что
здесь 0 исходных параметров.
-
Вот где метод calculatePrice
определен.
-
Этот метод подсчитывает
общую стоимость заказа
-
и выдает ее.
-
Цена должна быть числом и поэтому
-
мы должны изменить тип данных на
выходе с void на int.
-
Так мы выполним первое задание.
-
В тесте также указано, что
исходных параметров нет и
-
вот что у нас есть.
-
Во втором задании нам надо
изменить алгоритм так
-
чтобы мы подсчитывали
верную стоимость заказа.
-
И считали, что чашка кофе
стоит $5.00.
-
Внутри алгоритма мы берем
количество заказанных чашек кофе.
-
И умножаем его на $5
за одну чашку кофе.
-
Это равняется общей цене заказа.
-
Эта строка кода верна.
-
Но я вижу две проблемы, переменная
price никогда не использовалась
-
и есть ошибка отсутствия
утверждения для возвратного значения.
-
Ожидается, что на выходе будет число,
но на выходе нет ничего.
-
Сейчас наш код выглядит так,
как если бы мы это сказали.
-
Нам нужна строка с return,
а потом надо указать значение и
-
значение на выходе это цена.
-
Поэтому я просто поставлю price,
переменную, что мы назначили здесь.
-
Отлично - все ошибки пропали.
-
Нам надо также изменить Java DOC.
-
Указать что на выходе
у нас total price.
-
Так те, кто будет вызывать метод
будут знать, что от него ожидать.
-
Итак, мы закончили со всеми
частями по определению метода.
-
Перейдем к части
где метод вызывается.
-
Внутри метода submitOrder
нам надо вызвать calculatePrice.
-
Сейчас calculate price
болтается посреди пустоты.
-
Я его скопирую и вставлю вот сюда.
-
Раньше мы бы подчитали
цену заказа в строке,
-
в методе submit order, но сейчас
у нас для этого есть метод.
-
Поэтому я вставлю его сюда.
-
Я уберу лишнюю точку с запятой.
-
Обратите внимание, что price в этом
методе это местная переменная,
-
а также и в этом методе.
-
Это нормально, что у них
одинаковые имена,
-
поскольку это различые
области переменных.
-
Поэтому переменная price совершенно
не относится к переменной здесь.
-
Они меняются и назначаются
независимо друг отдруга.
-
А после выполнения этого метода,
переменная price пропадает.
-
Вернемся к методу submitOrder.
-
Мы подсчитали цену и
-
сохранили в переменной, а после мы
используем ее и создадим сообщение.
-
Поэтому весь этот код менять не надо.
-
Мы объединяем число,
-
price, со строкой total
с символом валюты.
-
После мы объединяем "Thank you!"
и выводим на экран.
-
Я сотру эти лишние пустые
строки и сохраню, а
-
после мы запустим
все на устройстве.
-
Итак, я изменила количество и
-
нажала ORDER, и правильно
показана цена в $25.
-
Отлично, все работает.
-
Но как я могу быть уверена, что
сalculatePrice на самом деле
-
работает, ведь нет видимых изменений
по сравнению с прошлой версией.
-
Вот пара способов с помощью которых
вы можете убедиться, что ваш код
-
на самом деле работает.
-
Ведь можно получить на выходе
и странное число, 700 например.
-
Сохраните код и запустите его.
-
Вот что я ожидаю увидеть -
если я изменю количество и
-
нажму кнопку ORDER, то должна
показаться цена в $700.
-
Так я буду знать, что метод calculate
price на самом деле был вызван.
-
Так и есть, отлично.
-
Я отменю это изменение.
-
Другой способ проверить,
что алгоритм выполняется - это
-
добавить здесь прерывание.
-
Я кликну на вот эту иконку и
-
и наше приложение начнет отладку.
-
Если я изменю количество и
-
нажму Оrder, то приложение должно
остановиться на этом месте.
-
Так и есть.
-
Вот мы в методе сalculate price.
-
Вот глобальная переменная, quantity.
-
А если я перейду на следующую линию,
то увижу местную переменную,
-
price. Она установлена на $15 так как
quantity равно 3, 3 по 5 = 15, класс.
-
Итак, все проходит через метод
calculated price и
-
если я нажму Resume,
все верно отобразится на экране.