定义一个复数类,其有两个字段:实部(real),虚部(img),其中有一个方法add实现两个复数的加,请定义一个事件,当两个复数相加时,触发该事件,利用事件参数把加的结果传递给事件处理程序,
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/25 00:32:04
定义一个复数类,其有两个字段:实部(real),虚部(img),其中有一个方法add实现两个复数的加,请定义一个事件,当两个复数相加时,触发该事件,利用事件参数把加的结果传递给事件处理程序,
定义一个复数类,其有两个字段:实部(real),虚部(img),其中有一个方法add实现两个复数的加,请定义一个事件,当两个复数相加时,触发该事件,利用事件参数把加的结果传递给事件处理程序,事件处理程序输出相加的结果.根据要求定义相关类(事件产生类,事件参数类,事件处理类)跪求大神,帮我写个完整的代码,期末复习,委托和事件编程不太懂,
定义一个复数类,其有两个字段:实部(real),虚部(img),其中有一个方法add实现两个复数的加,请定义一个事件,当两个复数相加时,触发该事件,利用事件参数把加的结果传递给事件处理程序,
一下代码全部手动输入,兵测试完毕.最近在学Java的设计模式,所以花了点功夫帮你把全部程序写出来了.
事件源
package com.ph.java.event;
public class EventSource {
\x05public EventSource(float real,float img) {
\x05\x05this.real = real;
\x05\x05this.img = img;
\x05}
\x05public float real;
\x05public float img;
\x05//public EventSource sum=new EventSource(0,0);
\x05private MyEventListener myEventListener;
\x05public void add(EventSource complex){
\x05\x05this.img=complex.img+this.img;
\x05\x05this.real=complex.real+this.real;
\x05\x05myEventListener.handleEvent(new MyEventObject(this));
\x05}
\x05public void addListener(MyEventListener listener){
\x05\x05myEventListener=listener;
\x05}
}
事件
package com.ph.java.event;
import java.util.EventObject;
public class MyEventObject extends EventObject {
\x05private Object eventSource;
\x05public Object getEventSource() {
\x05\x05return eventSource;
\x05}
\x05public void setEventSource(Object eventSource) {
\x05\x05this.eventSource = eventSource;
\x05}
\x05public MyEventObject(Object source) {
\x05\x05super(source);
\x05\x05this.eventSource=source;
\x05}
\x05
}
监听
package com.ph.java.event;
import java.util.EventListener;
public class MyEventListener implements EventListener {
\x05public void handleEvent(MyEventObject e){
\x05\x05EventSource source=(EventSource) e.getSource();
\x05\x05System.out.println("和为"+source.real+"+"+source.img+"i");
\x05}
}
测试程序
package com.ph.java.event;
public class Test {
\x05public static void main(String[] args) {
\x05\x05EventSource es=new EventSource(2f,2f);
\x05\x05es.addListener(new MyEventListener());
\x05\x05EventSource es2=new EventSource(3,3);
\x05\x05es.add(es2);
\x05}
}
输出结果