gpt4 book ai didi

java - 使用 for 循环和对象方法在 Java 中为对象数组赋值时遇到问题

转载 作者:行者123 更新时间:2023-12-01 17:16:25 25 4
gpt4 key购买 nike

在我的时间课上,我有:

public Time(String start_time) 
{
time = start_time;
hrs = Integer.parseInt(time.substring(0, 2));
mins = Integer.parseInt(time.substring(3, 5));
secs = Integer.parseInt(time.substring(6, 8));
}

public void addHour()
{
hrs = hrs + 1;

}
if (hrs > 23) {
hrs = hrs - 24;
}

prntsecs = String.valueOf(secs);
prntmins = String.valueOf(mins);
prnthrs = String.valueOf(hrs);

if (secs < 10) {
prntsecs = "0" + String.valueOf(secs);
}
if (mins < 10) {
prntmins = "0" + String.valueOf(mins);
}
if (hrs < 10) {
prnthrs = "0" + String.valueOf(hrs);
}

time = prnthrs + ":" + prntmins + ":" + prntsecs;
}

在我的主要类(class)中,我有:

Time tstamps[] = new Time[5];
Time a = new Time("09:00:00");
for (int i = 0; i < 5; i++){
tstamps[i] = a;
a.addHour();
}

tstamps[0].printTime();
tstamps[1].printTime();
tstamps[2].printTime();
tstamps[3].printTime();
tstamps[4].printTime();

我希望它打印:

09:00:00
10:00:00
11:00:00
12:00:00
13:00:00

但它打印:

14:00:00
14:00:00
14:00:00
14:00:00
14:00:00

我尝试过修改我的主类中的代码,但我是一个初学者,请帮助我理解我的错误以及如何修复它......

编辑:

抱歉,我还是不太明白该怎么做...

我尝试听从你的建议并这样做了:

Time tstamps[] = new Time[5];
for (int i = 0; i < 5; i++){
Time a = new Time("09:00:00");
for (int j = 1; j < i; j++){
a.addHour();
}
tstamps[i] = a;
}

但现在它只打印 09:00:00 五次,而不是 14:00:00。

我的 Time 类字段定义:

public String time;
public String prntsecs;
public String prntmins;
public String prnthrs;
public int hrs;
public int mins;
public int secs;

我没有任何Main类。

此外,如果我违反任何社区规范或类似行为,请原谅,这是我第二次在 StackOverflow 上发帖。

最佳答案

基于您发布的代码 - 但从 addHour 中删除编译错误

并修改为

    Time tstamps[] = new Time[5];
for (int i = 0; i < 5; i++){
Time a = new Time("09:00:00");
for (int j = 1; j < i + 1; j++){ // changed
a.addHour();
}
tstamps[i] = a;
}

for (int x = 0; x < 5; x++) {
System.out.println(tstamps[x].time);
}

我得到了输出

09:00:00
10:00:00
11:00:00
12:00:00
13:00:00

关于java - 使用 for 循环和对象方法在 Java 中为对象数组赋值时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61377984/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com