作业帮 > 综合 > 作业

定义一个复数类,其有两个字段:实部(real),虚部(img),其中有一个方法add实现两个复数的加,请定义一个事件,当

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/07 17:02:53
定义一个复数类,其有两个字段:实部(real),虚部(img),其中有一个方法add实现两个复数的加,请定义一个事件,当两个复数相加时,触发该事件,利用事件参数把加的结果传递给事件处理程序,事件处理程序输出相加的结果.根据要求定义相关类(事件产生类,事件参数类,事件处理类)跪求大神,帮我写个完整的代码,期末复习,委托和事件编程不太懂,
一下代码全部手动输入,兵测试完毕.最近在学Java的设计模式,所以花了点功夫帮你把全部程序写出来了.
事件源
package com.ph.java.event;
public class EventSource {
\x05public EventSource(float real,float img) {
\x05\x05this.real = real;
\x05\x05this.\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}

}

输出结果

再问: 用.net写的
再答: 你自己按照我Java写的格式改下就行了啊。三个类,一个测试。
再问: 好的 谢谢