永发信息网

求解Java作业 急求

答案:1  悬赏:0  手机版
解决时间 2021-04-22 16:07
Question 2.
We wish to model a digital clock, which records the time as 0:0:0 to 23:59:59. The clock,
which will be modelled by class DigitalClock, should have the following attributes:
hours (0 to 23)
minutes (0 to 59)
seconds (0 to 59)
which should all be declared as private, and the following methods:
DigitalClock() - creates a object and sets the time to 0:0:0
void setHours( int hrs ) – if hrs is not a valid value, sets the hours to 0
void setMinutes( int min ) – similar
void setSeconds( int sec ) – similar
void tick() – advances the clock one second
void displayTime( ) – to display the time.
String toString () – to display the time
Your jobs:
(1). Create the class DigitalClock.
(2). Create another class to test it. Design your test carefully to cover as many situations
as possible. Suggested testing:
a) set your clock to 23:59:50.
b) write a loop that calls the tick method 10 or more times printing the
current time after each tick. Check that the clock changes at midnight to
00:00:00
Note that we can’t really simulate a clock unless we use the Timer class to call the tick
method at intervals of one second – this is well beyond our current stage of learning.
最佳答案

DigitalClock 类


public class DigitalClock {

private int hours ;

private int minutes ;

private int seconds ;



public DigitalClock()//构造函数
{
this.hours=0;//初始化小时为0
this.minutes=0;//初始化分钟为0
this.seconds=0;//初始化秒针为0
}


// public int getHours() {
// return hours;
//}

public void setHours(int hours) {//判断小时大于等于0切小于等于23进行赋值否则设置为0
if(hours>=0&&hours<=23)
{
this.hours = hours;
}
else
{
this.hours =0;
}

}


// public int getMinutes() {
// return minutes;
// }


public void setMinutes(int minutes) {//判断分大于等于0切小于等于59进行赋值否则设置为0
if(minutes>=0&&minutes<=59)
{
this.minutes = minutes;
}
else
{
this.minutes =0;
}

}


// public int getSeconds() {
// return seconds;
// }


public void setSeconds(int seconds) {//判断秒大于等于0切小于等于59进行赋值否则设置为0
if(seconds>=0&&seconds<=59)
{
this.seconds = seconds;
}
else
{
this.seconds = 0;
}

}


public void tick()//让时间增加
{
this.seconds++;

if(this.seconds<=59)//当秒小于等于59秒是直接设置
{
this.setSeconds(this.seconds);
}
else//否则 分加一
{
this.minutes++;
this.setSeconds(this.seconds);
if(this.minutes<=59)//同上一样
{
this.setMinutes(this.minutes);
}
else//否则时 加一
{

this.hours++;
this.setMinutes(this.minutes);
this.setHours(this.hours);
}
}


}

public void displayTime()//没有返回类型的显示时间方法
{
System.out.println(""+this.hours+"-"+this.minutes+"-"+this.seconds);
}


public String toString()//返回字符串类型的方法
{
return ""+this.hours+"-"+this.minutes+"-"+this.seconds;
}
}



测试类


public class ceshi {



public static void main(String[] args) {
// TODO Auto-generated method stub

DigitalClock dis = new DigitalClock();
dis.setHours(23);
dis.setMinutes(59);
dis.setSeconds(50);

System.out.println("对时间为:23-59-50进行十次秒进结果是:");
for(int i=0;i<10;i++)
{
dis.tick();//推动时间增加
dis.displayTime();
}


}


}


测试结果


我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
哪个博客比较好呢?
在装扮空间的时候,怎么让它在主页上只有皮肤
想秀秀勒麽?最近他在忙什么噢..有天在中都出
建瓯市食品药品监督管理局(旧)我想知道这个在
牛奶与茶能同时引用么?
在国定节假日休息期间可以拒绝上级领导按排去
少年长期穿非常难受的高鞋子,会影响身体发育
飞车套装方面
海内存知己,下一句是什么? 30分
二进制编码序列为0110001011,画出双极性归零
我会再去浙江吗?
朋友,宅男是什么意思?
容悦地址有知道的么?有点事想过去
微信京东购物怎么退货
学校元旦文艺汇演,如果主题是青春,要跳舞,
推荐资讯
为什么我的图片做成闪图后做成模块到空间主页
鬼泣觉醒叫什么?觉醒技叫什么?
一个农民伯伯去买五斤酒!提了一个七斤桶跟三
男士精品店市场前景如何?
最近有什么好听的歌乃???
Hear You Me用于F1哪个视频?
重庆市南岸区邮编多少,重庆南岸区五公里邮编
为什么QQ飞车这个版本12月14日还没发布啊
华夏Ⅱonline几乎没有玩了。还要收钱真是狂晕
能瘫痪网吧系统的病毒?
谁能帮我开通游戏人生,谢谢?
意大利盃 巴勒莫vs里賈納 预测比分?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?