はじめに
今回はインプレス社が出版しているスッキリわかるjava入門についての練習問題を説明し、クラスの分割とAPIについての個人的な解釈を記述します。今回は第6章の練習問題を参照して、先生と生徒の対話を作り出します。
動作環境
- Window 11
- Java SE 11
ソースコード
package comment;
public class Main{
public static void main(String[] args) throws Exception {
Student.problem();
Teacher.solution();
Student.worries();
Teacher.encouragement();
}
}
package comment;
public class Student {
public static void problem() {
System.out.println("生徒:社会の勉強ってどうすればいいんですか?");
}
public static void worries() {
System.out.println("生徒:そうなんです。覚えればいいってことは分かるんですけど、どうしても集中できないんです。");
}
public static void think() {
System.out.println("生徒:わかりました。ありがとうございます。");
}
}
package comment;
public class Teacher {
public static void solution() {
System.out.println("先生:教科書の中の大切なところをノートに写して憶えるといいよ。");
}
public static void encouragement() throws InterruptedException {
System.out.println("先生:それがわかっていれば、あとはやる気の問題だと思うよ。");
System.out.println("先生:自分を信じて");
Thread.sleep(5000);
Student.think();
}
}
実行結果
生徒:社会の勉強ってどうすればいいんですか?
先生:教科書の中の大切なところをノートに写して憶えるといいよ。
生徒:そうなんです。覚えればいいってことは分かるんですけど、どうしても集中できないんです。
先生:それがわかっていれば、あとはやる気の問題だと思うよ。
先生:自分を信じて
(5秒後)
生徒:わかりました。ありがとうございます。
まとめ
- 複数のクラスに分けて記述することには開発を分担し、それぞれが並行して開発することができます。今回の練習は3クラスに分けて整理します。
- main()から呼び出す際にはStudentのproblem()やTeacherのsolution()のように、明確に示す必要があります。
- クラスThreadにはたくさんのメソッドが存在していますが、今回は現在実行中のスレッドを5秒にスリープするだけです。
- スリープを実行した後、encouragement()の中にStudentのメソッドを書き忘れないよう注意してください。
- mainクラスはStudent.think()を呼び出さないように注意してください。
参考サイト
-『スッキリわかるjava入門(第3版)』P224~P267|株式会社インプレス(中山清喬/国本大悟 著)
- java.lang.Thread