Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java日历只打印零_Java - Fatal编程技术网

Java日历只打印零

Java日历只打印零,java,Java,当我尝试运行这段代码时,我可能会非常失望,因为结果不符合我的预期。为什么结果都是0,有人能给我一个精辟的答案和如何正确使用日历吗 调用setCurrent()。现在还没用 public class JavaCalender { int hour, minute, second; public void setCurrent() { Calendar calendar = new GregorianCalendar(); this.hour = c

当我尝试运行这段代码时,我可能会非常失望,因为结果不符合我的预期。为什么结果都是0,有人能给我一个精辟的答案和如何正确使用日历吗

调用
setCurrent()
。现在还没用

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());
    }
}
在打印之前。这就是根据代码设置值的地方

编辑:按照@Vikas评论中提到的方式进行

添加到为什么结果都为0的部分。因为Java中原语
int
s的默认值是0,并且正如这个答案所指出的那样,
test.setCurrent()
从未被调用,所以默认值从未被更新。

调用
setCurrent()
。现在还没用

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());
    }
}
在打印之前。这就是根据代码设置值的地方

编辑:按照@Vikas评论中提到的方式进行


添加到为什么结果都为0的部分。因为Java中原语
int
s的默认值是0,并且由于这个答案指向
test.setCurrent()
,所以默认值永远不会被更新。

从TestJavaCalendar类中的测试流中,您可以将“setCurrent()”方法更改为JavaCalendar类的构造函数。
原名:

JavaCalender test = new JavaCalender();
test.setCurrent();
System.out.print...
之后:

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

然后,您可以顺利地使用JavaCalendar

从TestJavaCalendar类中的测试流,您可以将“setCurrent()”方法更改为JavaCalendar类的构造函数。
原名:

JavaCalender test = new JavaCalender();
test.setCurrent();
System.out.print...
之后:

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

然后,您可以顺利地使用JavaCalendar

为什么会这样?应该使用
Calendar Calendar=Calendar.getInstance()您为什么希望它这样做?应该使用
Calendar Calendar=Calendar.getInstance()int
s的默认值是0,并且正如这个答案所指出的那样,
test.setCurrent()
从未被调用,所以默认值永远不会被更新。@VikasPrasad值得一提。在回答中也更新了这一点:)非常感谢,我解决了它,请原谅我是一个newer@PanPan希望这有帮助。一定要接受它作为一个答案,以帮助其他人谁在这里降落在未来。添加到部分,为什么结果都是0?因为Java中原语
int
s的默认值是0,并且正如这个答案所指出的那样,
test.setCurrent()
从未被调用,所以默认值永远不会被更新。@VikasPrasad值得一提。在回答中也更新了这一点:)