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;
}
}