获取时间错误(Java)
测试代码:获取时间错误(Java),java,debugging,compiler-errors,Java,Debugging,Compiler Errors,测试代码: package testing; public class apples{ public static void main(String args[]){ thetest thetestOb = new thetest(); System.out.println(thetestOb.toMilitary()); thetestOb.setTime(13, 27, 6); System.out.println(t
package testing;
public class apples{
public static void main(String args[]){
thetest thetestOb = new thetest();
System.out.println(thetestOb.toMilitary());
thetestOb.setTime(13, 27, 6);
System.out.println(thetestOb.toMilitary());
}
}
封装测试;
公开考试{
私人整数小时;
私人整数分钟;
二等兵;
公共无效设置时间(int h、int m、int s){
小时=((h>=0&&h<24)小时:0);
分钟=((m>=0&&m<60)?m:0);
秒=((s>=0&&s<60)?s:0);
}
公共字符串toMilitary(){
返回字符串。格式(“%O2d:%O2d:%O2d”,小时、分钟、秒);
}
}
有人能解释一下我为什么会犯这些错误吗?我是Java的初学者,正在学习视频教程。我确保代码是完全相同的,但我得到了这个错误。其他人也有同样的问题。请帮助。这里您使用的是字母“O”而不是数字零(0)
将它们更改为0,它将工作。首先,初始化所有变量
public String toMilitary(){
return String.format("%O2d:%O2d:%O2d", hour, minute, second);
}
封装测试;
公开考试{
私人整小时=0;
私人整数分钟=0;
私有整数秒=0;
公共无效设置时间(int h、int m、int s){
小时=((h>=0&&h<24)小时:0);
分钟=((m>=0&&m<60)?m:0);
秒=((s>=0&&s<60)?s:0);
}
公共字符串toMilitary(){
返回字符串。格式(“%02d:%02d:%02d”,小时、分钟、秒);
}
}
因为如果不初始化实例变量,在第一次调用时,toMilitary()
,小时、分钟和秒都没有任何值。
您仅在第二次设置值
是的,这些将是
0
(零)而不是O
s<代码>%O2d不是Java语法。它甚至不会编译。您没有添加错误消息,告诉您为什么会发生这种情况。O
不是0
。这是错误消息。。。它没有X,这家伙在教程中写了O,而不是0。@Code123我真诚地建议忽略视频教程,因为视频教程的主要目标可能是获得广告印象,而不是教学。我诚恳地向大家推荐令人尊敬的Java Trail教程:谢谢。刚试过,没用?这对我有效,因为那是你唯一的问题。运行:00:00:00 13:27:06构建成功(总时间:0秒)它确实有效,我为此感谢您。然后,请您选择我的答案作为正确答案。谢谢,上面说我要等一分钟,所以我只是写了评论,没有打扰。不管怎样,给你。
package testing;
public class thetest{
private int hour;
private int minute;
private int second;
public void setTime(int h, int m, int s){
hour = ((h >= 0 && h < 24) ? h : 0);
minute = ((m >= 0 && m < 60) ? m : 0);
second = ((s >= 0 && s < 60) ? s : 0);
}
public String toMilitary(){
return String.format("%O2d:%O2d:%O2d", hour, minute, second);
}
}
public String toMilitary(){
return String.format("%O2d:%O2d:%O2d", hour, minute, second);
}
package testing;
public class thetest{
private int hour = 0;
private int minute = 0;
private int second = 0;
public void setTime(int h, int m, int s){
hour = ((h >= 0 && h < 24) ? h : 0);
minute = ((m >= 0 && m < 60) ? m : 0);
second = ((s >= 0 && s < 60) ? s : 0);
}
public String toMilitary(){
return String.format("%02d:%02d:%02d", hour, minute, second);
}
}