Я делаю программу, в которой есть два метода с одинаковым именем, использующие перегрузку методов, особенности: -
1-й метод: - Name-getDurationString
Параметры-минуты (проверьте, если> = 0) и секунды (проверьте> = 0 и
<= 59)
если TRUE, конвертировать минуты и секунды в их эквивалент
часы, минуты и секунды и вернуть строку в формате
"XX" h "YY" m "ZZ" s. </p>
если FALSE, вернуть строку "неверное значение"
2-й метод: - Name-getDurationString
Параметры-секунды (проверьте, если> = 0)
если TRUE, конвертировать секунды в их эквивалент
минуты и секунды и вернуть строку в формате
"YY" m "ZZ" s. Также вызовите 1-й метод с исправленным
минуты и секунды.
если FALSE, вернуть строку "неверное значение"
Вызовите оба метода из основного метода.
Проблема: - При запуске кода вместо 3 выводов получаю 5.
public class MinutesAndSeconds {
public static void main(String[] args){
getDurationString(120,58);
getDurationString((7200));
}
public static String getDurationString(int minutes,int seconds){
if(minutes>=0 && seconds>=0 && seconds<=59){
int hours=minutes/60;
int remaingMinutes=(minutes%60);
String i = hours + " h " + remaingMinutes + " m " + seconds +" s";
System.out.println(i);
return i;
}
else return "invalid value";
}
// 2nd method(overloading)
public static String getDurationString(int seconds){
if(seconds>=0){
int correctedMinutes=(seconds/60);
int correctedSeconds=seconds%60;
String i = correctedMinutes + " m " + correctedSeconds + " s";
System.out.println(i+"\n"+getDurationString(correctedMinutes,correctedSeconds));
return (i+"\n"+getDurationString(correctedMinutes,correctedSeconds));
}
else return "invalid value";
}
}
Ожидаемый: -
**
- 2 ч 0 м 58 с
- 120 м 0 с
- 2 ч 0 м 0 с
**
Фактическое: -
- 2 ч 0 м 58 с
- 2 ч 0 м 0 с
- 120 м 0 с
- 2 ч 0 м 0 с
- 2 ч 0 м 0 с