teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

コメントへの対応

2015/11/05 00:19

投稿

moredeep
moredeep

スコア1507

answer CHANGED
@@ -1,16 +1,52 @@
1
1
  現在時刻ということですが、HH:mm:ss形式でよろしいでしょうか。
2
2
  ```Java
3
3
  import java.util.Date;
4
+ import java.text.SimpleDateFormat;
4
5
 
5
6
  class Test{
7
+
6
- private static Date INSTANCE_DATE = null;
8
+ public static void main(String[] args){
7
- public Test(){
8
- if(INSTANCE_DATE == null){
9
+ for(int i = 1; i <= 10; i++){
10
+ try{
11
+ Thread.sleep(500);// インスタンス生成のタイミングをずらす
12
+ } catch(InterruptedException e){
9
- // static変数がnull(初回)であれば現在日時を保持
13
+ //エラーは無視
14
+ }
15
+ System.out.println(i + "回目のインスタンス生成");
10
- INSTANCE_DATE = new Date();
16
+ Test2 tes = new Test2();
17
+ tes.disp();
11
18
  }
12
- SimpleDateFormat sdf1 = new SimpleDateFormat("HH:mm:ss");
13
- System.out.println(sdf1.format(INSTANCE_DATE)); //出力
14
19
  }
15
20
  }
21
+ class Test2{
22
+ private static Date INSTANCE_DATE = null;
23
+ public Test2(){
24
+ if(INSTANCE_DATE == null){
25
+ // static変数がnull(初回)であれば現在日時を保持
26
+ INSTANCE_DATE = new Date();
27
+ }
28
+ }
29
+ public void disp(){
30
+ SimpleDateFormat sdf1 = new SimpleDateFormat("HH:mm:ss");
31
+ String resStr = getClass().getName() + "のインスタンス生成時刻 ";
32
+ System.out.println(resStr + sdf1.format(INSTANCE_DATE)); //出力
33
+ }
34
+ }
35
+
16
- ```
36
+ ```
37
+
38
+ ------------------------------------------------------------------------------------------
39
+ 追記
40
+
41
+ 少しソースを変えました。
42
+
43
+ 元々mainを入れてなかったのは要件がわからないからです。
44
+ (何回インスタンス生成するか?等)
45
+ 今回は適当に動くものを置いておきましたが、
46
+ 次回からはもう少し詳しく書いたほうがいいです。
47
+
48
+ あと、コメントにあった「プログラム最初にクラス名を入れたいです」の意味が分かりませんでした。
49
+ プログラムはソースコードの意味ですか?
50
+ そうであれば自分でコメントを入れてください。
51
+ プログラムは出力結果の意味ですか?
52
+ そうであればこのソースで満足でしょうか。