#java #oop #digital #object-oriented-database
Вопрос:
общедоступный класс DigitalClock {
private int m; private int h; private int s; //Fill in the necessary fields below /** * Constructor for objects of class DigitalClock * Replace the constructor. * Rather than assigning the fields with the parameters in 3 different statements, * make a call to the setTime method using the constructor's parameters as the * setTime method's parameters */ public DigitalClock(int h, int m, int s) { setTime( h, m, s); } /** * Assigns the fields by calling the appropriate set methods. * In order to set the time, you must set the hour, set the minute, and set the second. */ public void setTime(int h, int m, int s) { setHour(h); setMinute(m); setSecond(s); } /** * Mutator method for the hour field. * It should check if the parameter is valid. If the parameter is less than 1, * assign hour a value of 1. If the parameter is greater than 12, assign hour a value of 12. * Fill in below. */ public void setHour(int h) { if (h lt; 1) { this.h = 1; } else if (h gt; 12) { this.h = 12; } else { this.h = h; } } /** * Mutator method for the hour field. * It should check if the parameter is valid. If the parameter is invalid, * assign it a value of 0. * Fill in below. */ public void setMinute(int m) { if (m lt; 0) { this.m = 1; } else if (m gt; 60) { this.m = 0; } else { this.m = m; } } /** * Mutator method for the hour field. * It should check if the parameter is valid. If the parameter is invalid, * assign it a value of 0. * Fill in below. */ public void setSecond(int s) { if (s lt; 0) { this.s = 1; } else if (s gt; 60) { this.s = 0; } else { this.s = s; } } /** * Update the hour field to the next hour. * Take note that nextHour() of 23:47:12 is 00:47:12. */ public void nextHour() {} /** * Update the minute field to the next minute. * Take note that nextMinute() of 03:59:13 is 04:00:13. */ public void nextMinute() {} /** * Update the second field to the next second. * Take note that nextSecond() of 23:59:59 is 00:00:00. */ public void nextSecond() {} /** * Accessor method for the hour field. * Replace below. */ public int getHour() { return hour; } /** * Accessor method for the minute field. * Replace below. */ public int getMinute() { return minute; } /** * Accessor method for the second field. * Replace below. */ public int getSecond() { return second; } /** * returns "HH:MM:SS" * Hint: You might find it helpful to create a local String variable and progressively add to it. * Replace below. */ @Override public String toString() { String h,m,s; h = " " hour s = " " second m = " " minute return hour ":" minute ":" second' }
(Что мне сделать, чтобы обновить время и получить возвращаемые значения. Я выполняю домашнее задание и не знаю, куда идти после часовой информации. Задание состояло в том, чтобы сделать рабочие цифровые часы внутри BlueJ. Я застрял на этой части на три дня и не хочу просто копировать, не зная, что я делаю. Если возможно, я также хотел бы знать, что люди рекомендуют практиковать кодирование ООП на основе java.
Комментарии:
1. Пожалуйста, проясните вашу конкретную проблему или предоставьте дополнительные сведения, чтобы выделить именно то, что вам нужно. Поскольку это написано в настоящее время, трудно точно сказать, о чем вы просите.
Ответ №1:
Чтобы задать локальные переменные объекта (в данном случае m,h,s), можно this.m = X;
задать m
значение X
.
Кроме того, я думаю, что у вас есть ошибка в вашей setHour
функции. Проверьте условие для вашего первого if-заявления ; )
Редактировать:
В качестве отправной точки приведем, как setHour
может выглядеть эта функция. Я не чувствую себя плохо, когда пишу это для вас, потому что я слишком хорошо понимаю, как трудно вступать в CS! Также кажется, что вы искренне заинтересованы в обучении.
public void setHour(int h) { if (h lt; 1) { this.h = 1; } else if (h gt; 12) { this.h = 12; else { this.h = h; } }
Комментарии:
1. Я обновил свой документ