ClassMain.java
package test.listener;
public class ClassMain {
public static void main(String[] args) {
Student s = new Student("小强");
s.addListener(new StudentListener(){
@Override
public void reg(StudentEvent event) {
Student s = (Student)event.getSource();
System.out.println(s.getName()+"该睡觉了");
}
});
s.method();
}
}
StudentListener.java
package test.listener;
public interface StudentListener {
void reg(StudentEvent event);
}
StudentEvent.java
package test.listener;
public class StudentEvent {
private Object obj;
public StudentEvent(Object obj) {
this.obj = obj;
}
public Object getSource() {
return obj;
}
}
Student.java
package test.listener;
public class Student {
private String name;
private StudentListener listener;
public Student(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void addListener(StudentListener listener) {
this.listener = listener;
}
public void method() {
listener.reg(new StudentEvent(this));
System.out.println(name + "要学习了");
}
}