理解Java对象的交互:时钟显示程序

实现:

 

结构:

对象:时钟  - 对象:小时

                - 对象:分钟

  • 小时和分钟具有相同属性(值,上限),可以用一个类Display来定义这两个对象;
  • 但是两者之间又具有联系(当分钟达到上限时,小时要加1),但两者同属于一个类里,不能产生直接联系,这时我们用另外一个类Clock来对它们进行管理;
  • 首先用Clock类来定义一个clock的对象,用它来管理两个Display类型的对象,也即是clock的成员变量(min,hour),来管理它们之间的关系,再做显示;
  • 总结:一个对象里有两个对象,或者 用一个对象来管理其他两个对象之间的关系。

package clock:

  • >>class Dispaly
  • >>class Clock
 1 package clock;
 2 
 3 public class Display {
 4     int value = 0;
 5     int limit = 0;
 6     
 7     Display(int limit) {
 8         this.limit = limit;
 9     }
10 
11     void increase() {
12         ++ value;
13         if(value == limit){
14         value = 0;
15         }
16     }
17     
18     int getvalue() {
19         return value;
20     }
21     
22     public static void main(String[] args) {            //test
23         Display min = new Display(60);
24         for(;;) {
25             min.increase();
26             System.out.println(min.getvalue());
27         }
28     }
29     
30 }
Display.java
 1 package clock;
 2 
 3 public class Clock {
 4     Display min = new Display(60);
 5     Display hour = new Display(24);
 6     
 7     void start() {
 8         min.increase();
 9         if(min.getvalue()==0) {
10             hour.increase();
11         }
12     }
13     
14     public static void main(String[] args) {
15         Clock clock = new Clock();
16         for(;;) {
17             clock.start();
18             System.out.printf("%02d:%02d\n",clock.hour.getvalue(),clock.min.getvalue());
19         }
20     }
21 
22 }
Clock.java

 

posted @ 2016-10-04 11:39  zhaoxingya  阅读(588)  评论(0编辑  收藏  举报