小時和分鐘具有相同屬性(值,上限),可以用一個類Display來定義這兩個對象; 但是兩者之間又具有聯繫(當分鐘達到上限時,小時要加1),但兩者同屬於一個類里,不能產生直接聯繫,這時我們用另外一個類Clock來對它們進行管理; 首先用Clock類來定義一個clock的對象,用它來管理兩個Displ... ...
實現:
結構:
對象:時鐘 - 對象:小時
- 對象:分鐘
- 小時和分鐘具有相同屬性(值,上限),可以用一個類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