对于我的任务,我们假设要制作一个时钟 . 我们需要小时,分钟和秒的变量以及setHours / getHours,setMinutes / getMinutes,setSeconds / getSeconds等方法 . 我还需要一个addClock()方法来实现两个时钟对象的总和以及一个减少时钟的tickDown()方法 . 此外,我需要一个tick()方法,将Clock对象增加一秒 .
这是我到目前为止所拥有的......
public class Clock {
private int hr; //store hours
private int min; //store minutes
private int sec; //store seconds
// Default constructor
public Clock () {
setClock (0, 0, 0);
}
public Clock (int hours, int minutes, int seconds) {
setClock (hours, minutes, seconds);
}
public void setClock (int hours, int minutes, int seconds) {
if (0 <= hours && hours < 24)
hr = hours;
else
hr = 0;
if (0 <= minutes && minutes < 60)
min = minutes;
else
min = 0;
if (0 <= seconds && seconds < 60)
sec = seconds;
else
sec = 0;
}
public int getHours() {
return hr;
}
public int getMinutes() {
return min;
}
public int getSeconds() {
return sec;
}
public void addClock( Clock secondClock ) {
this.sec += secondClock.getSeconds();
this.min += secondClock.getMinutes();
//add overflow to minutes from seconds
this.min +=(int)(this.sec/60);
//update seconds
this.sec = this.sec % 60;
this.hr += secondClock.getHours();
//add overflow to minutes from seconds
this.hr +=(int)(this.min/60);
//update minutes
this.min = this.min % 60;
//adjust hours
this.hr = this.hr % 24;
}
public void tick(){
this.sec += 1;
//add overflow to minutes from seconds
this.min +=(int)(this.sec/60);
//update seconds
this.sec = this.sec % 60;
//add overflow to minutes from seconds
this.hr +=(int)(this.min/60);
//update minutes
this.min = this.min % 60;
//adjust hours
this.hr = this.hr %24;
}
public void tickDown(){
this.sec -= 1;
if(this.sec <0){
this.sec+=60;
this.min-=1;
}
if(this.min<0){
this.min+=60;
this.hr-=1;
}
if(this.hr<0){
this.hr+=24;
}
}
}
3 回答
你可以写如下
addClock()
:同样你可以编写
tick
和tickDown
方法,只是区别于 you will not have any argument in the method and you need to readjust minutes and hours after adding subtracting 1 from seconds将
main
方法添加为:您可以通过维持刻度来简化刻度逻辑 . 从刻度值中提取小时,分钟和秒 .
您必须了解有关Java语言的更多信息 . ;-)
我建议,主要是缺失