识别对象
如图,要用java实现一个HH:MM的时钟,提取出的对象是什么?
=>个人理解,选择一个java可实现的逻辑,把要操作的数据看作对象就可以了,比如这里 就是HH和MM这两个显示器,HH和MM表示显示器这个类的两个对象,而这两个对象组合(交互)又构成了新的对象——时钟Clock,这个组合对象属于一个新的类Clock。
0<=HH<24 0<=MM<60
代码实现1——ClassDisplay:
public class Display {
private int value=0;
private int limit=0;
public Display(int limit){
this.limit=limit;
}
public void increase(){
value++;
if(value==limit){
value=0;
}
}
public int getValue(){
return value;
}
public static void main(String[] args){
Display play1=new Display(24);
//play1.increase();
for(;;){
play1.increase();
System.out.println(play1.getValue());
}//引用死循环,模拟时钟的hh一直动态循环
}
}
返回结果:
代码实现2——ClassClock:即两个对象HH和MM的互动
public class Clock {
private Display hour=new Display(24);//定义成员变量+创建对象hour并通过构造函数赋值24给limit
private Display minute=new Display(59);//定义成员变量+创建对象minute并通过构造函数赋值59给limit
public void run() {
while (true) {//无限循环模拟时钟的无限动态循环run
minute.increase();
if (minute.getValue() == 0) {
hour.increase();//if minute=0了,hour+1
}
System.out.printf("%02d:%02d\n", hour.getValue(), minute.getValue());//使用printf,"%02d:%02d\n"规范格式,后两个object取当前值
}
}
public static void main(String[] args){
Clock clock1=new Clock();//创建clock的对象
clock1.run();
}
}
返回结果: