標籤:string 事件 ceo class jdk proc gets size port
話不多說,上代碼:
package test;import java.util.EventListener;import java.util.EventObject;import java.util.List;import java.util.Vector;class EventClassOne extends EventObject{ public EventClassOne(Object source) { super(source); }}class EventSource{ public String name; public EventSource(String name){ this.name=name; }// 儲存事件監聽器的籃子 Vector listeners=new Vector();// 把事件監聽器加到籃子裡 public void addEventListener(EventListener e){ listeners.add(e); } // 觸發事件的動作 public void say(String s){ for (int i = 0; i <listeners.size() ; i++) { ((MyEventListener)listeners.elementAt(i)) .action(new EventClassOne(this)); } }}class MyEventListener implements EventListener { public void action(EventObject eventObject){ if(eventObject.getSource() instanceof EventSource){ String name = ((EventSource) eventObject.getSource()).name; System.out.println(name+",喊什麼喊,吵到人家做愛了"); } }}public class EventTest { public static void main(String[] args) { EventSource 小鳳=new EventSource("小鳳"); EventSource 巨柱=new EventSource("巨柱"); MyEventListener listener1=new MyEventListener(); MyEventListener listener2=new MyEventListener(); 小鳳.addEventListener(listener1); 小鳳.addEventListener(listener2); 巨柱.addEventListener(listener1); 小鳳.say("想要個猛男"); 巨柱.say("想要個美女"); }}
結果:
"C:\Program Files\Java\jdk1.8.0_171\bin\java.exe"
小鳳,喊什麼喊,吵到人家做愛了
小鳳,喊什麼喊,吵到人家做愛了
巨柱,喊什麼喊,吵到人家做愛了
Process finished with exit code 0
原理圖:
java 事件舉例