Вот мой вопрос о домашнем задании:
Напишите объявление класса для класса "Часы". Он должен иметь переменные экземпляра для часов, минут, секунд (все целые числа). Он также должен иметь метод toString() для отображения времени в формате, показанном ниже. Напишите отдельный класс "ClockDriver": a) создайте экземпляр часов, b) установите часы, минуты и секунды для часов и c) покажите время часов с помощью getTime(). Используйте пример класса Dog на стр. 36 в качестве руководства. Образец показан ниже:
Время 3:45:00
//Не беспокойтесь, если вы не можете получить оба нули в
//второе поле. Это проблема форматирования
//мы будем иметь дело с более поздними
Вот мой класс Clock:
class Clock {
int hours;
int minutes;
int seconds;
public String toString() {
String temp = ("");
return temp.format("%02d:%02d:%02d", hours, minutes, seconds);
} //end method toString
public void getTime() {
System.out.print("The time is " + toString());
} //end method getTime
} //end class Clock
И вот мой класс ClockDriver:
public class ClockDriver {
public static void main (String[] args) {
Clock c = new Clock();
c.hours = 4;
c.minutes = 30;
c.seconds = 00;
c.getTime();
} //end main
} //end class ClockDriver
Несмотря на то, что он компилируется отлично и работает красиво, я получаю то, что, по моему мнению, является предупреждением от IDE, говорящим, что мой
return temp.format("%02d:%02d:%02d", hours, minutes, seconds);
линия обращается к статическому элементу через ссылку на экземпляр. В частности,
temp.format
бит.
Итак, мои вопросы:
1.) Почему обращение к статическому члену через ссылку экземпляра не обязательно рекомендуется?
2.) Есть ли лучший способ объединить это, чтобы я не получал доступ к статическому элементу через ссылку экземпляра?
Спасибо заранее!