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

回答編集履歴

4

レイアウト修正

2016/08/03 14:21

投稿

Panzer_vor
Panzer_vor

スコア1636

answer CHANGED
@@ -1,14 +1,19 @@
1
1
  Javaのソースが見れないので推測ですが。
2
2
 
3
3
  ①fieldsは配列か何かでこの中に年、月、日などの各種値を管理
4
+
4
5
  ②YEARは定数でfieldsの年の値を保持する要素へのインデクサ
6
+
5
7
  ③completeメソッドは時間計算をし値の呼び出し準備を完了する機能(fieldsに値をぶち込んでると思われる)
8
+
6
9
  ④completeメソッド内のisTimeSetがfalseの場合のみ、時間の計算がまだなのでupdateTimeメソッド呼び出し。
7
10
 
8
11
  ⑤computeTimeで派生クラスのカレンダーに基づくルールで時間を計算
9
12
 
10
13
  ⑥計算が終わったのでisTimeSetをtrueにしてupdateTimeの再呼び出しを防止
14
+
11
15
  ⑦areFieldsSetかareAllFieldsSetがfalse、つまり年月日などを管理する配列で値がセットされてない項目があるならcomputeFieldsメソッドで全てのフィールド値を算出
16
+
12
17
  ⑧算出後に⑦で判定したフラグをどちらもtrueに変更(computeFieldsの再呼び出し防止)
13
18
 
14
19
  ⑨internalGetメソッドで引数のインデクサに該当する要素から値を取り出し(掲示のソース部分だと年)

3

追記

2016/08/03 14:21

投稿

Panzer_vor
Panzer_vor

スコア1636

answer CHANGED
@@ -14,4 +14,11 @@
14
14
  ⑨internalGetメソッドで引数のインデクサに該当する要素から値を取り出し(掲示のソース部分だと年)
15
15
 
16
16
  流れはざっとこんな感じかと。
17
- 英語を解読しただけというのは秘密(
17
+ 英語を解読しただけというのは秘密(
18
+
19
+ ###追記
20
+ 長く書いてきましたが、
21
+ 恐らく派生クラス(各種カレンダークラス)でオーバライドしている、
22
+ 抽象メソッドのcomputeTimeが肝となっている予感です。
23
+
24
+ 計算方法を詳しく知るには派生クラスのcomputeTimeメソッドの実装を見ることが出来れば分かるかもしれませんね。

2

文面変更

2016/08/03 14:16

投稿

Panzer_vor
Panzer_vor

スコア1636

answer CHANGED
@@ -11,7 +11,7 @@
11
11
  ⑦areFieldsSetかareAllFieldsSetがfalse、つまり年月日などを管理する配列で値がセットされてない項目があるならcomputeFieldsメソッドで全てのフィールド値を算出
12
12
  ⑧算出後に⑦で判定したフラグをどちらもtrueに変更(computeFieldsの再呼び出し防止)
13
13
 
14
- ⑨internalGetメソッドでに該当する要素から値を取り出し
14
+ ⑨internalGetメソッドで引数のインデクサに該当する要素から値を取り出し(掲示のソース部分だと年)
15
15
 
16
16
  流れはざっとこんな感じかと。
17
17
  英語を解読しただけというのは秘密(

1

文面変更

2016/08/03 14:10

投稿

Panzer_vor
Panzer_vor

スコア1636

answer CHANGED
@@ -1,7 +1,7 @@
1
1
  Javaのソースが見れないので推測ですが。
2
2
 
3
3
  ①fieldsは配列か何かでこの中に年、月、日などの各種値を管理
4
- ②YEARは定数でfieldsの年の値を保持する要素番号
4
+ ②YEARは定数でfieldsの年の値を保持する要素へのインデクサ
5
5
  ③completeメソッドは時間計算をし値の呼び出し準備を完了する機能(fieldsに値をぶち込んでると思われる)
6
6
  ④completeメソッド内のisTimeSetがfalseの場合のみ、時間の計算がまだなのでupdateTimeメソッド呼び出し。
7
7