Chinese, Traditional subtitles

← 12-15 Use Return Value from Method - Solution

Get Embed Code
13 Languages

Showing Revision 1 created 10/12/2015 by sp8.

  1. 首我們要更改calculatePrice方法簽字
  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. 我們需要一行代碼來陳述返回值 然后把一個值放在這里
  24. 返回值是價格
  25. 因此我要放入price 這是我們在這里定義的一個變數
  26. 很好 現在所有錯誤都消失了
  27. 我們還應該修改 Java DOC.
  28. 因此我們聲明 我們要返回總價
  29. 當有人調用這個方法時 他們就知道會得到什么
  30. 因此現在我們已經完成這個方法的所有定義工作
  31. 現在讓我們轉到調用這個方法的位置
  32. 在submitOrder方法內 我們應該調用calculatePrice方法
  33. 現在價格計算方法的位置還不確定
  34. 我需要復制它 把它貼在這里
  35. 在我們計算訂單價格之前
  36. 在訂單提交方法 我們需要為它定義一個方法
  37. 我需要把它貼在這里
  38. 現在刪除多余的分號
  39. 我們注意到在這個方法中 價格是一個區域變數
  40. 而且在這個方法中也是一個區域變數
  41. 因此它們的名稱可以是相同的
  42. 因為它們具有不同的變數適用范圍
  43. 這里的價格變數和這里的變數完全沒有關系
  44. 它們已經過更新 而且是互相獨立的
  45. 這個方法執行完成后 price變數就消失了
  46. 我們返回到submitOrder方法
  47. 因此計算價格
  48. 把它存放在變數中 我們可以使用它來建立價格訊息
  49. 實隙上 這個代碼是通用的
  50. 我們可以連結整數
  51. 價格到總價字串 并附加貨幣符號
  52. 然后我們連結"Thank you!" 顯示在熒幕上
  53. 我要刪除這些多余的空白行 然后保存
  54. 然后 我們可以在設備上運行程式
  55. 我變更數量
  56. 然后按一下ORDER 它就正確顯示價格為$25
  57. 太好了 完全正確
  58. 但是我怎樣確定calculatePrice已經發揮作用呢
  59. 因為與我們以前的應用程式相比 使用者并不能看到明顯的變更
  60. 你可以使用一些技術核實
  61. 你的代碼實際在運行
  62. 我可以讓它返回一個很大的數字 比如700.
  63. 保存我的代碼 然后運行
  64. 現在我期望 如果我變更數量
  65. 然后按ORDER訂單 價格應該顯示為$700
  66. 這樣我應知道這個價格計算方法實際上已經被調用
  67. 運行正常 好極了
  68. 現在我可以取消這個變更
  69. 檢查這個方法是否被執行的另一種途徑
  70. 在這里添加一個斷點
  71. 我點這個調試小圖標
  72. 我們的應用程式進入調試模態
  73. 如果我變更數量
  74. 然后按一下訂購 我期望程式在這里暫停
  75. 它在這里暫停了
  76. 現在我們位于價格計算方法之中
  77. 有一個全域變數quantity
  78. 如果我轉到下一行 我看現在這里有一個區域變數price
  79. 它被設定為$15 因為數量是3 3乘以5等于15 好極了
  80. 現在 將要執行價格計算方法
  81. 如果我按一下Resume 它會正確更新熒幕