Japanese subtitles

← 12-17 Define and Call a Method - Solution

Get Embed Code
13 Languages

Showing Revision 1 created 10/18/2015 by sp11.

  1. まずステップ1、MainActivityに
    新しいメソッドを追加してみましょう。
  2. 他のメソッドが定義された波括弧の外であれば、
  3. どこにでもメソッドを
    追加することができます。
  4. すでに定義したcalculatePriceの下に
  5. 新しいメソッドを追加してみます。
  6. 変更へのアクセスは
    privateにしておきます。
  7. ここにアクセスするのは
    このMainActivity内だけだからです。
  8. 次に、戻り値の種類を
    String(文字列)とします。
  9. createOrderSummaryの
    メソッドは、文字列を返すからです。
  10. メソッド名はcreateOrderSummary
  11. そして入力情報をpriceとし、
    ここには数字が入力されます。
  12. メソッドのシグネチャーが完了しましたが
  13. 今度はこのメソッドを実行させて
    このメッセージを返さなければいけません。
  14. メッセージには
    Name(名前)、Quantity(数量)、Total(合計)、
    そしてThank you!が含まれます。
  15. これをコピーし、
    createOrderSummaryの
  16. メソッド内にペースト。
  17. それではベースコードから始めます。
  18. ここでの違いは、
  19. 注文内容は合計価格ではなく、
    名前から始まっていることです。
  20. これは改行して、後で使います。
  21. price messageの変数を
    "Name: Kaptain Kunal"と
  22. 入力します。
  23. 次の行に、
    price messageを追加します。
  24. すでにあるメッセージに付け加えます。
  25. priceMessage、+、
  26. "Quantity: "、
    そしてquantityの変数を追加します。
  27. quantityはグローバル変数なので
  28. このメソッド内でのアクセスが可能です。
  29. これで、名前と数量が加えられました。
  30. 次の行に、priceMessageを
    再度追加します。
  31. さらにテキストを付け加えます。
  32. ここには合計金額が表示されるので、
  33. すでに入力済みのものを使えます。
  34. 最後の行に、price messageを
    再度追加します。
  35. すでに存在するstringの値を入力して、
    "Thank you!"と加えます。
  36. これで終わりのようですが、
    まだエラーがあります。
  37. 戻り値が欠けていると表示されています。
  38. summaryの文字列を
    返す必要があるので、
  39. もう1行追加して、returnというコードを
    加えなければなりません。
  40. そして、戻り値を入力します。
  41. ここで戻り値となるのはpriceMessageです。
  42. 最後にセミコロンを付け加えます。
  43. これでエラーがなくなりました。
  44. 全て良さそうなので、
    実行してテストしてみましょう。
  45. QUANTITY(数量)を3に変更しました。
  46. ORDER(注文)のボタンを押しましたが
    何も起こりません。
  47. 何が問題なのか見てみましょう。
  48. コードを注意して見てみると、
    何が問題なのかがわかります。
  49. privateのcreateOrderSummaryが
    使われていない
  50. と警告が出ています。
  51. 呼び出すのを忘れていました。
  52. 最初のスライドに戻りましょう。
  53. 最初のタスクは達成しましたが、
    createOrderSummaryを
  54. submitOrderから
    呼び出さなければなりません。
  55. Android Studioに戻って、
    submitOrder を修正します。
  56. 料金計算は正しく設定されていますが、
  57. 値をcreateOrderSummaryへ
    渡す必要があります。
  58. その命令をここに作るためには、
    createOrderSummaryを入力して、
  59. 変数をpriceに。
  60. このメソッドに返す値は
  61. priceMessageの変数に保存されます。
  62. この行に書かれているコードは不要です。
  63. Thank you!は下に
    入力済みだからです。
  64. ですので、削除します。
  65. そしてスクリーンに正しく表示するために
    displayMessageを
  66. priceMessageという変数で呼び出します。
  67. もう一度、アプリを試してみましょう。
  68. QUANTITY(数量)を3にして、
  69. ORDER(注文)ボタンを押してみると、
    まだ正しく表示されません。
  70. 改行なしで表示されてしまっています。
  71. もう一度、コーディングを修正しましょう。
  72. コードを見直してみると、
    改行させる文字を入力し忘れています。
  73. Thank you!には入力されていますが、
    他の行にはありません。
  74. 従って、他の行にも改行を加えます。
  75. さぁ、これで再度試してみましょう。
  76. 今度は正常に動きました。
  77. 素晴らしい!
  78. これでKaptain Kunalは、
    コーヒーカップを3つ注文できます。
  79. プログラミングを
    さらに最適にする方法をいくつか紹介します。
  80. calculatePriceのメソッドを
    引数として渡さずに
  81. createOrderSummaryメソッド内で
    呼び出すことも可能でした。
  82. つまり、ここにcalculatePriceを書き出します。
  83. その方法でもうまくいくのですが、
  84. ここでは片方のメソッドの
    アウトプットをインプットとし、
  85. もう一方のメソッドへ渡したかったのです。
  86. ですので、今回はそのままにしておきます。
  87. createOrderSummaryのメソッド内で
  88. 他のやり方としては、
    演算子「+=」を使うことです。
  89. これは速記法です。
  90. これはpriceMessage= priceMessage + 残りのコードを表します。
  91. 従って、この部分を「+=」に変えると、
    前に入力したものと同じことを表します。
  92. これによって、入力量がが減り、
    コードが簡潔になります。
  93. calculatePriceで
  94. 他に可能なのは
    値を直接返すことです。
  95. ローカル変数に保存してから返す代わりに。
  96. これでコードが簡潔になります。
  97. そして、submitOrderメソッドの部分でも、
  98. Order Summaryを作って
    変数に保存してすぐに使わずに、
  99. createOrderSummaryを
    呼び出すことも可能です。
  100. ここも同じです。
  101. createOrderSummaryの
    戻り値は、string(文字列)です。
  102. これが入力引数として
    displayMessageメソッドに渡されます。
  103. わかりやすければ、
    このままにしておいても構いません。
  104. 今まで説明した方法や裏技は、
    結局は同じ結果をもたらしますので。
  105. 忘れずに言っておきたいのは、
    メソッドの上にJavadocコメントを書き、
  106. ここで何が処理されるのかを
    説明することです。
  107. 専門的に言えば、privateのメソッドに
    Javadocコメントは
  108. 必要ありませんが、
    メソッドの説明を書くといい練習になり、
  109. あなたが入力したコードを
    他の人が読んだ時に
  110. 何をしようとしたのか
    理解できます。
  111. このメソッドの説明は、
    注文内容を作ることです。
  112. 入力パラメータは注文の料金、
    それがテキストの要約を返します。