Japanese subtitles

← The Display Method

Get Embed Code
6 Languages

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

  1. ではdisplayメソッドの実装を始めましょう
  2. このメソッドは選択問題をこの形式で表示します
    最初は質問文で
  3. 次にすべての選択肢です 解答者が答える際に
  4. 迷わないように各選択肢の前に
    1、2、3、4と振っておきます
  5. この部分の処理はとても簡単です
    選択肢をループで回して
  6. その前に番号を出力するだけです
    これは継承の学習とは
  7. 無関係なのでこのコードをお見せします これです
  8. i番目の選択肢の番号と中身を出力します
    番号とiはまったく同じではありません
  9. Javaでchoicesのインデックスは
    ゼロ、1、2、3だからです
  10. より一般的な1、2、3、4としたいので
  11. ここはi + 1とします
    難しいのは質問文を表示する部分です
  12. 質問文textは
    スーパークラスのオブジェクト内にあるので
  13. 直接得ることはできません
    スーパークラスを見てみましょう
  14. これが質問文textです
  15. これを表示させるメソッドを探します
    このdiplayメソッドを呼び出せば
  16. 質問文textを出力できます
    これが欲しかったものです 実行してみましょう
  17. 質問文textを表示するdisplayメソッドを呼び出し
  18. choicesを表示させます デモを実行すると
    非常に悪いことが起こりました
  19. スタックオーバーフローエラーといって
    再帰呼び出しを続けるメソッドの技術用語です
  20. なぜ再帰になったのでしょう
    displayというメソッド内でdisplayメソッドを
  21. 呼び出しています これが問題です
    呼び出したかったのは自身のメソッドではなく
  22. Questionクラスのdisplayメソッドです
    問題なのはdisplayというメソッドが
  23. 同じ名前でスーパークラスとサブクラスの
    両方にあるということです
  24. メソッドをオーバーライドする際よく起きます
  25. スーパークラスのメソッドを呼び出すための
    特別な構文があります
  26. これが例文です
    単にsuper.display()と書きます
  27. ではdisplayメソッドを修正してください