在java中修改方法不起作用

在java中修改方法不起作用,java,class,methods,Java,Class,Methods,课程 public JTime add(JTime t2){ JTime sum = new JTime(); sum.hour = this.hour + t2.hour; sum.minute = this.minute + t2.minute; sum.second = this.second + t2.second; return sum; } public void increment (double seconds){ this.se

课程

public JTime add(JTime t2){
    JTime sum = new JTime();
    sum.hour = this.hour + t2.hour;
    sum.minute = this.minute + t2.minute;
    sum.second = this.second + t2.second;
    return sum;
}

public void increment (double seconds){
    this.second = seconds;
    while(this.second >= 60.0){
        this.second -= 60.0;
        this.minute += 1;
    }
    while(this.minute >= 60.){
        this.minute -=60;
        this.hour +=1;
    }
    while(this.hour >= 24){
        int result = this.hour - 24;
        this.hour = result;
    }


}
Main

public static void main(String[] args) {

    JTime startTime = new JTime(22, 50, 0.0);
    JTime runningTime = new JTime(5, 16, 0.0);
    JTime endTime = startTime.add(runningTime);
    System.out.println(endTime);
    }
}

我只是在遵循一本书中发表的方法。我在这里试图实现的是以24小时格式显示时间。
increment
方法应该这样做,但它不是。

add方法返回一个对象,因此您需要重写其toString或创建一个返回单个结果值的方法。例如:

 @Override
    public String toString() 
    {
        return "Hours:"+this.hour+", minutes:"+this.minute+", seconds:"+this.second;
    }

使用整数除法
/
(7/5==1)和模
%
(7%5==2)可以 修复三个字段中的溢出:

int hour;
int minute;
int second;

public JTime plus(JTime t2) {
    JTime sum = new JTime();
    sum.hour = this.hour + t2.hour;
    sum.minute = this.minute + t2.minute;
    sum.second = this.second + t2.second;
    normalize();
    return sum;
}

private void normalize() {
    minute += second / 60;
    second %= 60;
    hour += minute / 60;
    minute %= 60;
    hour %= 24;
}

public void increment(int seconds) {
    second += seconds;
    normalize();
}

@Override
public String toString() {
    return String.format("%02d:%02d:%02d", hour, minute, second);
}
add
重命名为
plus
,以指示时间对象本身没有增加,而是传递了一个新的时间


另外,溢出(天数)也不错。

我看不到任何地方真正调用了
increment
。我正在读的这本书没有提到任何关于调用的内容,所以我假设该方法会自动更改。您预期的输入和输出是什么,实际的输出是什么?我无法与这本书交谈,但是,在Java中,方法不会自动/神奇地被调用。如果你看11.9,它就是这么说的。