Java时钟程序
我正试图用Java制作一个时钟程序,我让所有东西都正常工作,只是我不能让程序将负值改为0。如果小时、分钟和秒的值超出范围,我也无法让程序将其设置为0。我有一个测试程序,我必须使用和T1和T2时钟值是不正确的,在我的代码。T1应该是0:0:0,T2也应该是0:0:0。然而,当我输出代码时,结果是T1为-3:-21:-30,T2为24:60:60。我知道我的代码有问题,但我找不到问题所在,如果有人能帮助我,我将不胜感激。下面是我的代码,第二部分是我必须使用的测试仪代码Java时钟程序,java,constructor,clock,accessor,mutators,Java,Constructor,Clock,Accessor,Mutators,我正试图用Java制作一个时钟程序,我让所有东西都正常工作,只是我不能让程序将负值改为0。如果小时、分钟和秒的值超出范围,我也无法让程序将其设置为0。我有一个测试程序,我必须使用和T1和T2时钟值是不正确的,在我的代码。T1应该是0:0:0,T2也应该是0:0:0。然而,当我输出代码时,结果是T1为-3:-21:-30,T2为24:60:60。我知道我的代码有问题,但我找不到问题所在,如果有人能帮助我,我将不胜感激。下面是我的代码,第二部分是我必须使用的测试仪代码 public class C
public class Clock
{
// instance variables
private int hours;
private int minutes;
private int seconds;
public void setHours(int newHours) {
hours = newHours;
if (hours<0 || hours > 24) {
hours = 0;
}
}
public void setMinutes(int newMinutes) {
minutes = newMinutes;
if (minutes<0 || minutes > 60) {
minutes = 0;
}
}
public void setSeconds(int newSeconds) {
seconds = newSeconds;
if(seconds<0 || seconds > 60) {
seconds = 0;
}
}
/**
* Constructor for objects of class Clock
*/
public Clock(int newHour, int newMinute, int newSecond)
{
if (newHour > -1 || newHour < 24) {
this.hours = newHour;
}
else {
setHours(hours);
}
if (newMinute > -1 || newMinute < 60) {
this.minutes = newMinute;
}
else {
setMinutes(minutes);
}
if (newSecond > -1 || newSecond < 60) {
this.seconds = newSecond;
}
else {
setSeconds(seconds);
}
}
public int getHours() {
return hours;
}
public int getMinutes() {
return minutes;
}
public int getSeconds() {
return seconds;
}
public String toString() {
return hours + ":"+minutes+":"+seconds;
}
public void tick() {
seconds = seconds +1;
if(seconds >= 60)
{
minutes ++;
seconds = 0;
}
if(minutes >= 60)
{
hours++;
minutes = 0;
}
if(hours >=24)
{
hours = 0;
}
}
}你的情况不对。
当你写这篇文章时:
if (newHour > -1 || newHour < 24) {
if(newHour>-1 | | newHour<24){
你的意思是:
if (newHour > -1 && newHour < 24) {
if(newHour>-1&&newHour<24){
您的情况不正确。
当你写这篇文章时:
if (newHour > -1 || newHour < 24) {
if(newHour>-1 | | newHour<24){
你的意思是:
if (newHour > -1 && newHour < 24) {
if(newHour>-1&&newHour<24){
< /代码> @ NICOMP是正确的,您也应该使用>=24和60而不是>。您可以考虑将时钟的构造函数更改为
public Clock(int newHour, int newMinute, int newSecond) {
setHours(newHour);
setMinutes(newMinute);
setSeconds(newSecond);
}
然后在SET方法中进行所有验证,而不是在SET方法和构造函数中有一些验证。
@ NICOMP是正确的,并且您也应该使用>=24和60而不是>。您可以考虑将时钟的构造函数更改为
public Clock(int newHour, int newMinute, int newSecond) {
setHours(newHour);
setMinutes(newMinute);
setSeconds(newSecond);
}
然后在set方法中进行所有的验证,而不是在set方法和构造函数中进行一些验证。我建议if(newHour>=0&&newHour=0&&m-1&&m<60)@KevinAnderson-Okey-Dokey。我认为大多数开发人员习惯于您编写它的方式,而不是OP(newHour>=0&&newHour=0&&m-1&&m<60)@KevinAnderson-Okey-Dokey。我认为大多数开发人员都习惯于您编写它的方式,而不是OP。