public class JavaCalender {
int hour, minute, second;
public void setCurrent() {
Calendar calendar = new GregorianCalendar();
this.hour = calendar.get(Calendar.HOUR_OF_DAY);
this.minute = calendar.get(Calendar.MINUTE);
this.second = calendar.get(Calendar.SECOND);
}
public int getHour() {
return hour;
}
public int getMinute() {
return minute;
}
public int getSecond() {
return minute;
}
}
class TestJavaCalender {
public static void main(String[] args) {
JavaCalender test = new JavaCalender();
System.out.print(test.getHour() + "\n" + test.getMinute() + "\n" + test.getSecond());
}
}
当我尝试运行这段代码时,我非常失望,因为结果不符合我的期望。为什么结果都是0,有人能给我一个精辟的答案以及如何正确使用日历?
答案 0 :(得分:2)
致电setCurrent()
。它现在没用了。
JavaCalender test = new JavaCalender();
test.setCurrent();
System.out.print...
打印之前根据您的代码设置值的位置。
编辑 :正如@Vikas在评论中所提到的那样
添加到部分为什么结果全部为。因为Java中原始int
的默认值为0,并且从未调用此答案点test.setCurrent()
,因此默认值永远不会更新。
答案 1 :(得分:0)
从TestJavaCalender类的测试流程中,您可以将“setCurrent()”方法更改为JavaCalender类的构造函数。
orignial:
public void setCurrent() {
Calendar calendar = new GregorianCalendar();
this.hour = calendar.get(Calendar.HOUR_OF_DAY);
this.minute = calendar.get(Calendar.MINUTE);
this.second = calendar.get(Calendar.SECOND);
}
后:
public JavaCalender() {
Calendar calendar = new GregorianCalendar();
this.hour = calendar.get(Calendar.HOUR_OF_DAY);
this.minute = calendar.get(Calendar.MINUTE);
this.second = calendar.get(Calendar.SECOND);
}
然后,您可以顺利使用JavaCalender。