Because We Love Happy Coding

フリーライターからエンジニア × 講師。発信力だけあり余ってる感じ

学習者のための「レストランJava」

今日もまたコーディング。だって僕らはHappy Codingが大好きだから。

f:id:mogami74:20160813060312j:plain

以前、Java学習者の一助にと思って、小さなJavaのプログラムを作った。実行するとレストランでの会話?が展開される。

効用

Javaの基本であるclass間のデータのやりとりがわかる

ダウンロード

javaRestaurants.zip - Google ドライブ

推奨の利用方法

  1. 各classのソースコードをA4各1枚に印刷する。(合計5枚)
  2. Restaurantクラスのmain()メソッドから処理を開始した場合に、どのような処理が実行されるか、順を追って把握する。
    書き込みするのもいいね。
  3. 想定される出力(実行後の画面表示)を書いてみる。手書きでもテキストファイルでも可。
  4. クラス図やシーケンス図を書き起こしてみる。
  5. ソースコードを実行環境に入力し、実際に動かしてみる。
  6. ソースコードを改造して遊ぶ。具体的な例としては
    • 「Guest.payment()メソッドをドル支払い(double)に変更できるよう、関連するメソッドをオーバーロードしてドル建てに対応する」
    • 「新規にLoveStoryクラスを作ってそこにmain()メソッドを記述し、他のクラスにも必要な記述を追加してboyAとgirlAの間のラブストーリーを展開する(テキストアドベンチャーゲーム風?)」
      いや、冗談じゃなくてですね、他のクラスからも呼び出しされうるオブジェクト志向の思想に関する勉強なわけですよ。戦争とかゲームが人類の技術の発展に貢献してきたことは紛れもない事実でありまして。LoveStoryクラス作った人がいたらここに追加するのでソースコード下さい。
    など。

推奨の利用方法にまつわる留意点

  • Java(に限らずプログラミング言語全般)の処理は、1行ずつ厳密に実行される。「どのような処理が実行されるか、順を追って把握する」にあたっては、メソッド間の行き来を含め、行番号単位で処理が説明できるようにすること。「Hogeクラスの5〜10行 → Honyaクラスの8〜12行 → Hogeクラス11〜20行 → …」のように、実行される順番が行単位で説明できること。
  • 引数、戻り値については、その中身が具体的に何であるか、きちんと説明できること。
  • 実行順については、Javaの得意な人に時間をもらって、その人に対して説明をしてみると良い。
    ただし説明するだけでたぶん30分くらいかかるし、その後正しい解説をもらうともうちょっとかかるので、コーヒー一杯くらいおごっていいレベル。コーヒーとケーキなら尚良い(紅茶とケーキも可)
  • Restaurant.main()メソッドを最後まで処理しきれず、途中で挫折した場合はJavaの理解に課題があると思われるので、誰かに助けを求めること(無理にとは言わないが)