Russian subtitles

← 12-15 Use Return Value from Method - Solution

Get Embed Code
13 Languages

Showing Revision 3 created 12/16/2015 by Fran Ontanaya.

  1. Сначала мы изменим сигнатуру
    метода calculatePricе,
  2. чтобы на выходе получить
    данные верного типа.
  3. Будем также считать, что
    здесь 0 исходных параметров.
  4. Вот где метод calculatePrice
    определен.
  5. Этот метод подсчитывает
    общую стоимость заказа
  6. и выдает ее.
  7. Цена должна быть числом и поэтому
  8. мы должны изменить тип данных на
    выходе с void на int.
  9. Так мы выполним первое задание.
  10. В тесте также указано, что
    исходных параметров нет и
  11. вот что у нас есть.
  12. Во втором задании нам надо
    изменить алгоритм так
  13. чтобы мы подсчитывали
    верную стоимость заказа.
  14. И считали, что чашка кофе
    стоит $5.00.
  15. Внутри алгоритма мы берем
    количество заказанных чашек кофе.
  16. И умножаем его на $5
    за одну чашку кофе.
  17. Это равняется общей цене заказа.
  18. Эта строка кода верна.
  19. Но я вижу две проблемы, переменная
    price никогда не использовалась
  20. и есть ошибка отсутствия
    утверждения для возвратного значения.
  21. Ожидается, что на выходе будет число,
    но на выходе нет ничего.
  22. Сейчас наш код выглядит так,
    как если бы мы это сказали.
  23. Нам нужна строка с return,
    а потом надо указать значение и
  24. значение на выходе это цена.
  25. Поэтому я просто поставлю price,
    переменную, что мы назначили здесь.
  26. Отлично - все ошибки пропали.
  27. Нам надо также изменить Java DOC.
  28. Указать что на выходе
    у нас total price.
  29. Так те, кто будет вызывать метод
    будут знать, что от него ожидать.
  30. Итак, мы закончили со всеми
    частями по определению метода.
  31. Перейдем к части
    где метод вызывается.
  32. Внутри метода submitOrder
    нам надо вызвать calculatePrice.
  33. Сейчас calculate price
    болтается посреди пустоты.
  34. Я его скопирую и вставлю вот сюда.
  35. Раньше мы бы подчитали
    цену заказа в строке,
  36. в методе submit order, но сейчас
    у нас для этого есть метод.
  37. Поэтому я вставлю его сюда.
  38. Я уберу лишнюю точку с запятой.
  39. Обратите внимание, что price в этом
    методе это местная переменная,
  40. а также и в этом методе.
  41. Это нормально, что у них
    одинаковые имена,
  42. поскольку это различые
    области переменных.
  43. Поэтому переменная price совершенно
    не относится к переменной здесь.
  44. Они меняются и назначаются
    независимо друг отдруга.
  45. А после выполнения этого метода,
    переменная price пропадает.
  46. Вернемся к методу submitOrder.
  47. Мы подсчитали цену и
  48. сохранили в переменной, а после мы
    используем ее и создадим сообщение.
  49. Поэтому весь этот код менять не надо.
  50. Мы объединяем число,
  51. price, со строкой total
    с символом валюты.
  52. После мы объединяем "Thank you!"
    и выводим на экран.
  53. Я сотру эти лишние пустые
    строки и сохраню, а
  54. после мы запустим
    все на устройстве.
  55. Итак, я изменила количество и
  56. нажала ORDER, и правильно
    показана цена в $25.
  57. Отлично, все работает.
  58. Но как я могу быть уверена, что
    сalculatePrice на самом деле
  59. работает, ведь нет видимых изменений
    по сравнению с прошлой версией.
  60. Вот пара способов с помощью которых
    вы можете убедиться, что ваш код
  61. на самом деле работает.
  62. Ведь можно получить на выходе
    и странное число, 700 например.
  63. Сохраните код и запустите его.
  64. Вот что я ожидаю увидеть -
    если я изменю количество и
  65. нажму кнопку ORDER, то должна
    показаться цена в $700.
  66. Так я буду знать, что метод calculate
    price на самом деле был вызван.
  67. Так и есть, отлично.
  68. Я отменю это изменение.
  69. Другой способ проверить,
    что алгоритм выполняется - это
  70. добавить здесь прерывание.
  71. Я кликну на вот эту иконку и
  72. и наше приложение начнет отладку.
  73. Если я изменю количество и
  74. нажму Оrder, то приложение должно
    остановиться на этом месте.
  75. Так и есть.
  76. Вот мы в методе сalculate price.
  77. Вот глобальная переменная, quantity.
  78. А если я перейду на следующую линию,
    то увижу местную переменную,
  79. price. Она установлена на $15 так как
    quantity равно 3, 3 по 5 = 15, класс.
  80. Итак, все проходит через метод
    calculated price и
  81. если я нажму Resume,
    все верно отобразится на экране.