对象交互

@spiritree  August 8, 2016

题目内容:
有秒计时的数字时钟
public Clock(int hour, int minute, int second);

用hour, minute和second初始化时间。

public void tick();

“嘀嗒”一下,时间走1秒。

public String toString();

返回一个String的值,以“hh:mm:ss“的形式表示当前时间。这里每个数值都占据两位,不足两位时补0。如“00:01:22"。注意其中的冒号是西文的,不是中文的。

在输出时,Clock不是string变量则会自动调用toString方法

Java API toString()")

Clock类

public class Clock {
    private Display hour = new Display(24);
    private Display minute = new Display(60);
    private Display second = new Display(60);

    public Clock(int hour, int minute, int second){
        this.hour.setValue(hour);
        this.minute.setValue(minute);
        this.second.setValue(second);
    }

    public void tick() {
        second.increase();
        if (second.getValue() == 0) {
            minute.increase();
        }
        if (minute.getValue() == 0) {
            hour.increase();
        }
    }

    public String toString(){
        String time=String.format("%02d:%02d:%02d", hour.getValue(), minute.getValue(), second.getValue());
        return time;
    }
}

Display类

public class Display {
    private int value = 0;
    private int limit = 0;

    public Display(int limit) {
        this.limit=limit;
    }

    public void setValue(int value){
        this.value = value;
    }

    public void increase() {
        value++;
        if (value == limit)
        {
            value = 0;
        }
    }

    public int getValue() {
        return value;
    }
}

添加新评论