【练习代码】5.25 java学习记录(实例:时钟的实现)

实现一个如上图所示的时钟,能完成数字的跳动与显示。

思路:

构建一个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();
    }
}

运行结果如下(为了方便查看,仅取部分,并设计了一轮后就截止的循环,如有需要,也可改为无限跳动下去的时钟):

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值