新・明解 Java 入門 演習 11-1 解答
Hello, Terminal!swaponQです!
今回から「第11章:パッケージ」に入ります。
第11章は演習が1題だけなので、大切に解いていきましょう。
それでは演習 11-1 に取り組んでいこうと思います。
- 演習 11-1
List10-12のクラスDateIdをパッケージidを所属させるように書きかえよ。なお、クラスDateIdTesterは無名パッケージに所属させること。
今回はパッケージを扱うので、以下にディレクトリの構成も示しておきます。
・Tree
. ├── DateIdTester.class ├── DateIdTester.java └── id ├── DateId.class └── DateId.java 1 directory, 4 files
・DateId.java
package id; import java.util.GregorianCalendar; import static java.util.GregorianCalendar.*; public class DateId { private static int counter; // 何番までの識別番号を与えたか private int id; // 識別番号 static { GregorianCalendar today = new GregorianCalendar(); int y = today.get(YEAR); // 年 int m = today.get(MONTH) + 1; // 月 int d = today.get(DATE); // 日 System.out.printf("今日は%04d年%02d月%02d日です。\n", y, m, d); counter = y * 1000000 + m * 10000 + d * 100; } //-- コンストラクタ --// public DateId() { id = ++counter; // 識別番号 } //--- 識別番号を取得 ---// public int getId() { return id; } }
・DateIdTester.java
import id.DateId; public class DateIdTester { public static void main(String[] args) { DateId a = new DateId(); DateId b = new DateId(); DateId c = new DateId(); System.out.println("aの識別番号:" + a.getId()); System.out.println("bの識別番号:" + b.getId()); System.out.println("cの識別番号:" + c.getId()); } }
・実行結果
今日は2020年08月05日です。 aの識別番号:2020080501 bの識別番号:2020080502 cの識別番号:2020080503
「第11章:パッケージ」は以上です。お疲れ様でした!
次回は「第12章:クラスの派生と多相性」です。
Goodbye, Terminal… swaponQでした!