实现一个如上图所示的时钟,能完成数字的跳动与显示。
思路:
构建一个Display类,其中需要存储数的Value和表示进位上限的limit两个属性,实现+1功能的increase()和显示数值的getValue()两个方法,以此完成小时、分钟两部分数值的显示,除此之外,Display需要重构,引入可变动的limit使它用于进位不同的计算;
对于整体实现,需构造一个Clock类,其中存有类型为Display的hour和minute两个属性;分钟与小时的进位关联依赖一个新的方法getClock()实现。
Display部分代码如下:
public class Display {
int limit; //进位
int value;
Display(int limit) //不同的进位值
{
this.limit = limit;
}
public void increase()
{
value ++;
if(value == limit)
{
value = 0;
}
}
public int getValue()
{
return value;
}
}
Clock部分代码如下:
public class Clock {
Display hour = new Display(24);
Display minute = new Display(60);
public void startClock()
{
while (hour.value!=23||minute.value!=59) //完成一天的时钟
{
minute.increase();
if (minute.value == 0)
{
hour.increase();
}
//%02表示固定输出两个字符,空余位置用0代替
System.out.printf("%02d:%02d\n",hour.getValue(),minute.getValue());
}
}
public static void main(String[] args) {
Clock clock = new Clock();
clock.startClock();
}
}
运行结果如下(为了方便查看,仅取部分,并设计了一轮后就截止的循环,如有需要,也可改为无限跳动下去的时钟):