Объектно-ориентированное программирование BlueJ

#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. Я обновил свой документ