数字时钟
- 通常的时钟显示是hh:mm:ss这样的,所以这次我模拟这种的显示方式来检验java对象与类的学习成果。
- 我们首先定义一个Display类,类中有Value和limits两个属性,有getValue(), setValue(int value), increase()这三种方法
类名: | Display |
属性: | value | limits |
方法: | increase() | getValue() | setValue() |
class Display {
private int value = 0;
private int limits = 0;
public Display() {}
public Display(int limits){
this.limits = limits;
}
public void increase() {
value++;
if(value == limits) {
value = 0;
}
}
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
}
- 之后我们定义一个Clock类,类中有会定义三个Display对象(分别为:HOUR, MINUTE, SENCOND), 当SENCOND对象中的
value == limits
我们会让MINUTE类中的value++
, 以此类推。
类名: | Clock |
属性: | HOUR | MINUTE | SENCOND |
方法: | tick() | toString() |
class Clock {
private Display HOUR = new Display(24);
private Display MINUTE = new Display(60);
private Display SENCOND = new Display(60);
public Clock() {}
public Clock(int hour, int minute, int second) {
HOUR.setValue(hour);
MINUTE.setValue(minute);
SENCOND.setValue(second);
}
public void tick() {
SENCOND.increase();
if(SENCOND.getValue() == 0){
MINUTE.increase();
if(MINUTE.getValue() == 0){
HOUR.increase();
}
}
}
public String toString() {
return String.format("%02d:%02d:%02d", HOUR.getValue(), MINUTE.getValue(), SENCOND.getValue());
}
}
- 之后再
main()
函数中调用Clock类来对结果进行输出
public class Main {
public static void main(String[] args) {
java.util.Scanner in = new java.util.Scanner(System.in);
Clock clock = new Clock(in.nextInt(), in.nextInt(), in.nextInt());
clock.tick();
System.out.println(clock);
in.close();
}
}