2014-01-22 2 views
-3

Я работал над этим заданием на некоторое время, и я ударил стену, и я не могу понять, как это сделать. Цель задания можно прочитать здесь, чтобы избавить меня от необходимости печатать или копировать его.Как распечатать эти поля частного класса после их преобразования?

http://imgur.com/be5YVst

Я не могу выяснить выходную часть задания. Поскольку класс должен был быть настроен таким образом, а не просто выполнять определенную функцию. Несмотря на то, что в задании ничего не сказано о методе toString() или аналогичном методе, я начал писать его, но понял, что не могу использовать поля, час, минуту и ​​секунду, потому что они недоступны. Если бы я попытался поместить их в программу TimeTest, у меня не будет разрешения, потому что они частные. (Они должны быть частными.)

Как я могу получить эти конвертированные единицы для печати в форме часа: минута: секунда?

Ниже мой текущий код:

public class Time 
{ 
    private long hour; 
    private long minute; 
    private long second; 

    public Time() 
     { 
      long compTime = System.currentTimeMillis(); 
      this.setTime(compTime); 
     } 

    public Time(long hour, long minute, long second) 
     { 
      this.hour = hour; 
      this.minute = minute; 
      this.second = second; 
     } 

    public Time(long time) 
     { 
      this.setTime(time); 
     } 

    //three get methods 
    public long getHour() 
     { 
      return this.hour; 
     } 

    public long getMinute() 
     { 
      return this.minute; 
     } 

    public long getSecond() 
     { 
      return this.second; 
     } 
    //setTime method 
    public void setTime(long elapseTime) 
     { 
      this.hour = (elapseTime/36000000); 
      this.minute = ((elapseTime - (this.hour * 36000000))/60000); 
      this.second = ((elapseTime - (this.minute * 60000))/1000); 
     } 

    public String printFormat() 
     { 
     //it wouldn't let me name it toString() so I named it printFormat() instead. 
     } 
} 
+0

Что вы имеете в виду, что _wouldn't пусть you_? –

+0

Либо переопределите toString(), либо используйте геттеры. Готово. –

+0

Собственно, кто-то уже сделал это домашнее задание. DUP: http://stackoverflow.com/questions/19612739/design-a-class-named-time-in-java?rq=1 –

ответ

0

попробовать

@Override 
public String toString() { 

    // create a string from your fields 

} 
+0

Спасибо. Это отличный трюк, который я даже не знал, что могу сделать. У меня есть их для печати сейчас. Математика как-то не работает. – user3221717

0

Попробуйте это,

class Time 
    { 
     private long hour; 
     private long minute; 
     private long second; 

     public Time() 
     { 
      long compTime = System.currentTimeMillis(); 
      this.setTime(compTime); 
     } 

     public Time(long hour, long minute, long second) 
     { 
      this.hour = hour; 
      this.minute = minute; 
      this.second = second; 
     } 

     public Time(long time) 
     { 
      this.setTime(time); 
     } 

     //three get methods 
     public long getHour() 
     { 
      return this.hour; 
     } 

     public long getMinute() 
     { 
      return this.minute; 
     } 

     public long getSecond() 
     { 
      return this.second; 
     } 
     //setTime method 
     public void setTime(long elapseTime) 
     { 
      this.hour = (elapseTime/36000000); 
      this.minute = ((elapseTime - (this.hour * 36000000))/60000); 
      this.second = ((elapseTime - (this.minute * 60000))/1000); 
     } 

     public String printFormat() 
     { 
      return hour + ":" + minute + ":" + second; 
     } 
    } 
    public class TimeTest 
    { 
     public static void main(String[] args) 
     { 
      System.out.println(new Time().printFormat()); 
     } 
    } 
+0

Всегда добавляйте пояснения к своему коду. – eatSleepCode

Смежные вопросы