```
public class tuna
{
private int hour;
private int minute;
private int second;
// Constructor with 0 passed arguments
public tuna()
{
this(0,0,0);
}
// Constructor with 1 passed arguments
public tuna(int h)
{
this(h,0,0);
}
// Constructor with 2 passed arguments
public tuna(int h, int m)
{
this(h,m,0);
}
// Constructor with 3 passed arguments
public tuna(int h, int m, int s)
{
setTime(h,m,s);
}
// setTime method
public void setTime(int h, int m, int s)
{
setHour(h);
setMinute(m);
setSecond(s);
}
/*----------Set methods----------*/
public void setHour(int h) {hour = ( (h>=0 && h<24)?h : 0);}
public void setMinute(int m) {hour = ( (m>=0 && m<60)?m : 0);}
public void setSecond(int s) {hour = ( (s>=0 && s<60)?s : 0);}
/*----------Get methods----------*/
public int getHour() {
return hour;}
public int getMinute() {
return minute;}
public int getSecond() {
return second;}
public String toMilitary()
{
return String.format("%02d:%02d:%02d", getHour(), getMinute(), getSecond());
}
}
```
Выше - класс, содержащий конструкторы и методы, а ниже - класс с основной функцией, которая фактически вызывает конструкторы и методы.
Я делал эту простую программу, которая отображает время и упражнение показало, что у вас может быть несколько конструкторов с разным количеством параметров. Единственная проблема заключается в том, что когда я нахожусь на этапе конструктора, вся информация верна, но когда отладчик переходит от конструктора к классу, который он используется, вся информация исчезает, кроме этой одной строки. Я думаю, это как-то связано с тем, как я настроил конструкторы, но я не могу понять, что я сделал не так. Любая помощь была бы замечательной. Спасибо!
Вот результат, который я получаю:
Желаемый результат:
И если кто-то из вас узнает это упражнение, это одно из руководств Баки. PS Обычно я не публикую весь код, но я буквально понятия не имею, что может иметь отношение к моей проблеме, а что нет.
class apples
{
public static void main(String[] args)
{
tuna obj1 = new tuna(); // No parameter constructor
tuna obj2 = new tuna(5); // 1 parameter constructor
tuna obj3 = new tuna(5,13); // 2 parameter constructor
tuna obj4 = new tuna(5,13,43); // 3 parameter constructor
System.out.printf("%s\n", obj1.toMilitary());
System.out.printf("%s\n", obj2.toMilitary());
System.out.printf("%s\n", obj3.toMilitary());
System.out.printf("%s\n", obj4.toMilitary());
}
}