请帮我看看我的代码错哪了public class Main { public static void main(String[] args) { Display dp = new Display(0, 60); for (int i = 0; i <= 60; i++) { System.out.println(dp.getValue()); dp.increase(); } } } public class Clock { private Display hour=new Display(0,24); private Display minute=new Display(0,60); public void start(){ for(int i=0;i<=120;i++){ System.out.printf("%02d:%02d/n",hour.getValue(),minute.getValue()); minute.increase(); if (minute.getValue()==0){ hour.increase(); } } } } public class Display { private int value; private int limit; public Display(int value,int limit){ this.limit=limit; this.value=value; } public void increase(){ value++; if(value>=limit){ value=0; } } public int getValue(){ return value; } }
时间: 2024-04-13 18:30:27 浏览: 57
C#中static void Main(string[] args) 参数示例详解
在你的代码中,有一些问题需要修正:
1. 在 `Clock` 类中,你定义了一个 `start()` 方法,但是在 `Main` 类的 `main()` 方法中没有调用这个方法。你需要在 `Main` 类中调用 `start()` 方法来启动时钟。
2. 在 `Clock` 类的 `start()` 方法中,你使用了 `/n` 来换行,但应该是 `\n` 才是正确的换行符。
请修正后的代码如下:
```java
public class Main {
public static void main(String[] args) {
Clock clock = new Clock();
clock.start();
}
}
public class Clock {
private Display hour = new Display(0, 24);
private Display minute = new Display(0, 60);
public void start() {
for (int i = 0; i <= 120; i++) {
System.out.printf("%02d:%02d\n", hour.getValue(), minute.getValue());
minute.increase();
if (minute.getValue() == 0) {
hour.increase();
}
}
}
}
public class Display {
private int value;
private int limit;
public Display(int value, int limit) {
this.limit = limit;
this.value = value;
}
public void increase() {
value++;
if (value >= limit) {
value = 0;
}
}
public int getValue() {
return value;
}
}
```
这个修正后的代码会输出从 "00:00" 到 "02:00" 的所有时间,每分钟递增一次。注意,在 `Main` 类中只需创建一个 `Clock` 对象并调用 `start()` 方法即可。
阅读全文