分類  >  編程 >

03-04面向對象設計準則_設計實驗

tags:    時間:2014-05-04 18:39:41
03-04面向對象設計原則_設計實驗

設計實驗

有 3 個開關:a b c

有 3 個電燈:x y z

要求實現:

a 能控制 x

b 能控制 x, y

c 能 x

注意:1個燈泡可以被多個開關控制;1個開關可以同時控制多個燈泡

所謂「控制」:當開關操作時,當前燈泡的狀態發生翻轉。亮->滅 或 滅->亮

  import java.util.*;    class Light { 	private boolean state;  // 燈的狀態。true: 亮 	 	public String toString() 	{ 		if(state) 			return "亮"; 		else 			return "滅"; 	} 	 	// 翻轉狀態 	public void change() 	{ 		state = !state; 	} } 	  class Switch { 	//Light[] a = ... 	Vector v = new Vector(); 	 	public void addLight(Light x) 	{ 		v.add(x); 	} 	 	// 按了一下開關 	public void press() 	{ 		for(int i=0; i<v.size(); i++) 		{ 			Light p = (Light)v.get(i); 			p.change();  // 反轉電燈的當前狀態 		} 	} } 			 public class MyTest { 	private static void show_light(Light x, Light y, Light z) 	{ 		System.out.println(x + "," + y + "," + z); 		System.out.println("-----------------------"); 	} 	 	public static void main(String[] args) 	{	 		Light x = new Light(); 		Light y = new Light(); 		Light z = new Light(); 		 		Switch a = new Switch(); 		Switch b = new Switch(); 		Switch c = new Switch(); 		 		a.addLight(x); 		b.addLight(x); 		b.addLight(y); 		c.addLight(x); 		 		show_light(x, y, z); 		 		a.press(); 		show_light(x, y, z); 		 		b.press(); 		show_light(x, y, z); 		 		c.press(); 		show_light(x, y, z); 		 	} }

推薦閱讀文章

Bookmark the permalink ,來源:互聯網