リスニングの原理---カスタムリスニング--例
ClassMain.java
StudentListener.java
StudentEvent.java
Student.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 + " ");
}
}