java - 使用for循环和对象方法为Java中的对象数组分配值时遇到问题
问题描述
在我的时间课上,我有:
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;
}
在我的主要课程中,我有:
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
我试过在我的 Main 类中弄乱代码,但我是一个初学者,请帮助我理解我的错误以及如何修复它......
编辑:
抱歉,我还是不太明白怎么做……
我试图听从你的建议并这样做:
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;
我没有任何主要课程。
另外,如果我违反任何社区规范或类似的东西,请原谅,这是我第二次在 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
推荐阅读
- html - 我怎样才能让引导程序响应
- r - 从 DT::renderDT 调用时,R 闪亮的反应值不会重新计算
- javascript - 在本地主机上工作时发布请求在 plesk 上不起作用
- mongodb - 如何将数据库从 MongoDB Compass 转移到 MongoDB Atlas
- reactjs - 用不同宽度的项目反应多行拖放
- doxygen - 如何在 vcpkg/cmake 中使用 doxygen?
- apache-spark - 如何计算火花结构化流中的移动平均值?
- reactjs - reactjs中的复选框
- laravel - Livewire Select2 Dynamic 不更新公共视图
- python - 获取元组列表并以带有第一行标题的两列格式打印它们