diff --git a/SingletonTest.java b/SingletonTest.java new file mode 100644 index 0000000..d925834 --- /dev/null +++ b/SingletonTest.java @@ -0,0 +1,50 @@ +import java.util.Calendar; +import java.util.Date; + +public class SingletonTest { + + public static void main(String[] args) throws InterruptedException { + // staticメソッドで「設定」を作成 + MySetting ms = MySetting.getInstance(); + int object_id = ms.hashCode(); // hashCode()は、オブジェクト固有のIDを返す + System.out.println(ms.getCreated().toString()); + // Thread.sleep(1200); // VSCodeで動作チェックするときに使うとよい + MySetting ms2 = MySetting.getInstance(); + System.out.println(ms2.getCreated().toString()); + System.out.println(ms2.getLastAccessed().toString()); + + int object_id2 = ms2.hashCode(); + if (object_id == object_id2) { + System.out.println("Object is same."); + } else { + System.out.println("Object is different."); + } + if (ms.getCreated() == ms2.getCreated()) { + System.out.println("CreatedDate is also same."); + } else { + System.out.println("CreatedDate is different."); + } + } +} + +class MySetting { + private static MySetting instance = null ; // 初期状態はオブジェクトなし。 + private MySetting(){ // 【重要】コンストラクタは private にしておく(自由に作らせない) + created = Calendar.getInstance().getTime(); // 作成日時 + } + private Date created; + private Date lastAccessed; + public static MySetting getInstance(){ // インスタンスが必要なら、このメソッドを呼び出す +// TODO: このあたりの、記述を追加・変更する必要がある + instance = new MySetting(); + + instance.lastAccessed = Calendar.getInstance().getTime(); + return instance; + } + public Date getCreated(){ + return created; + } + public Date getLastAccessed(){ + return lastAccessed; + } +} \ No newline at end of file