java.util.Calendarクラスについてです。
APIを見ていると、わからなくなってしまいましたので、質問させてください。
例えば、
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
とすれば、変数yearには2016が格納されるわけですが、
Calendarクラスを見てみると
public final static int YEAR = 1;
とあります。
また、getメソッドを見てみると、
public int get(int field)
{
complete();
return internalGet(field);
}
completeメソッド及び、internalGetメソッドを見てみると、
protected void complete()
{
if (!isTimeSet)
updateTime();
if (!areFieldsSet || !areAllFieldsSet) {
computeFields(); // fills in unset fields
areAllFieldsSet = areFieldsSet = true;
}
}
protected final int internalGet(int field)
{
return fields[field];
}
となっております。
pudateTimeメソッドは
private void updateTime() {
computeTime();
// The areFieldsSet and areAllFieldsSet values are no longer
// controlled here (as of 1.5).
isTimeSet = true;
}
coputeTimeメソッドは抽象メソッドでした。
これらのコードからなぜyearに2016が代入されるのか理解できません。
一体どうなっているのでしょうか。
ご存知の方がいらっしゃれば、ぜひご教授願いたいです。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。