//事件参数对象
public class EventArgs { private Object source; public EventArgs(Object source) { this.source=source; } public Object getSource() { return source; } } //事件监听器
public interface PersonListener { void listenEat(EventArgs e); void listenRun(EventArgs e); }
//事件源
public class Person {
private String name;
private PersonListener listener;
//注册监听器
public void registerListener(PersonListener listener){
this.listener=listener;
}
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void eat(){
System.out.println(name+"开始吃饭了.....");
if(listener!=null){
listener.listenEat(new EventArgs(this));
}
}
public void run(){
System.out.println(name+"开始跑步了.....");
if(listener!=null){
listener.listenRun(new EventArgs(this));
}
}
}
//使用实例
public class Demo1 { public static void main(String[] args){ Person liubei = new Person("刘备"); Person guanyu = new Person("关羽"); PersonListener listener=new PersonListener() { @Override public void listenEat(EventArgs e) { Person source=(Person)e.getSource(); System.out.println("监听到"+source.getName()+"吃东西..."); } @Override public void listenRun(EventArgs e) { Person source=(Person)e.getSource(); System.out.println("监听到"+source.getName()+"在裸奔..."); } }; //注册监听 liubei.registerListener(listener); guanyu.registerListener(listener); liubei.eat(); liubei.run(); System.out.println("----------------------------------------------"); guanyu.eat(); guanyu.run(); } }