YouTube

Got a YouTube account?

New: enable viewer-created translations and captions on your YouTube channel!

Japanese subtitles

← Creating a Static Method

Get Embed Code
4 Languages

Showing Revision 1 created 10/31/2014 by K2480.

  1. やってみましょう すべての機能を
    メソッドに入れていきます
  2. 準備するので少しお待ちください
    これが私のメソッドです
  3. このメソッドは望ましい範囲内の整数値を探し続け
  4. 見つけたらその整数値を返します
  5. 厳密なコードは今は重要ではありませんが
  6. もし見たければコード分配で見ることができます
  7. そしてここでコードを呼び出します
  8. しかし問題があります
  9. コンパイルするとエラーメッセージが出ました
  10. 皆さんにはわけが分からないと思います
  11. 静的メソッドと非静的メソッドを見ながら
  12. なぜコンパイルがうまくいかないのか
    説明しましょう
  13. 通常はオブジェクトにメソッドを呼び出しますが
  14. それを行いませんでした
  15. その理由はElevatorDemoにいるので
  16. どのElevatorDemoのメソッドも
    呼び出せると思ったからです
  17. しかしmainから呼び出しているので
    ElevatorDemoのオブジェクトも
  18. コンパイラのエラーもありません
  19. 先ほどのこの部分がこの問題の重要なポイントです
  20. それはreadBetweenはオブジェクトに
    呼び出されていないことと
  21. 呼び出すのに最適なオブジェクトがないことです
  22. Scannerに呼び出せたらいいのですが
    それはできません
  23. オブジェクトに呼び出せないメソッドがあるという
    状況に陥ったら
  24. 静的メソッドを作ります
  25. 静的メソッドはオブジェクトに
    呼び出されないメソッドです
  26. 改善策は単純にElevatorDemoに戻り
  27. ヘルパーメソッドの静的メソッドを宣言します
  28. このようにすればうまくいきます
  29. シンタックスエラーがなくなりました
  30. 元の問題の答えとして適切なのは
    readBetweenを
  31. ElevatorDemoに静的メソッドとして
    置くことです
  32. しかしこの場合は違います
  33. もしこのすばらしいメソッドを
  34. 他のクラスに使いたいとしたらどうでしょう
  35. readBetweenメソッドはある範囲から
  36. 値を読み取りたい状況で非常に役に立つようです
  37. そこでこれを他の場所に置きたいと思います
  38. そしてそれを置くクラスをIOHelperと呼びます
  39. 準備したクラスをお見せしましょう
  40. これがIOHelperクラスで
    これがreadBetweenメソッドです
  41. これは静的メソッドです
  42. IOHelperクラスで
    オブジェクトを作るつもりはないからです
  43. IOHelperクラスを
    このメソッドが属する場所にしたいのです
  44. つまりこのメソッドを呼び出す時は
  45. クラスの名前を明示しなければなりません
  46. IOHelperはクラスの名前
    こちらはメソッドの名前です
  47. 静的メソッドはそれほど一般的ではありません
  48. 大抵の場合実際のオブジェクトには
  49. メソッドを実行する責任があるからです
  50. 静的メソッドを使うこともあります
  51. レッスン4のMathクラスで
    静的メソッドを見ました
  52. 構文はクラスの名前、ピリオド、
    メソッドの名前です
  53. またMathクラスにはオブジェクトがありません
  54. クラスに平方根メソッドを直接呼び出します
  55. なぜ静的メソッドを使う必要があるのか
  56. 疑問に思うかもしれません
  57. なぜ数字2にメソッドを呼び出せないのかとね
  58. Javaではそうなるのです
  59. Javaでは数字はオブジェクトではないので
  60. オブジェクトにメソッドは呼べません
  61. 平方根は論理的かもしれませんが
    これはエラーです
  62. では静的メソッドを要約すると
  63. クラスに属しオブジェクトに呼び出されず
    一般的ではありません
  64. 静的メソッドと呼ぶことに実は理由はありません
  65. 他の大昔のプログラミング言語の遺物です
  66. 静的メソッドが特に静的というわけでもありません
  67. 静的メソッドに加え静的変数というものもあります
  68. 次で見ていきます