能不能帮我解释个java的程序

来源:百度知道 编辑:UC知道 时间:2024/06/04 22:14:54
public class Calculator {
public Calculator(CalcEng e, CalcFace f) {
eng = e;
cf = f;
f.setCalc(this);
}

public void on() throws java.io.IOException {
output(); // cf.input();
}

//
public void enterNumber(String number, char op) {
eng.setOperand(Double.parseDouble(number));
enterOp(op);
}

//
public void enterOp(char op) {
eng.operate(op);
output(); // }

//
private void output() {
double number = eng.getOutput();
cf.showNumber("" + number);
}

private CalcEng eng = null;
private CalcFace cf = null;
}
这是个用java编制计算器的一段程序,能不能详细解释下这个程序的目的,以及这个程序运作的原理,特别是这段怎么理解public Calculator(CalcEng e, CalcFace f) {
eng = e;
cf = f;
f.setCalc(this);
}
另还有两个类CalcEng e, CalcFace f,我这里省略了

当你要给Calculator类实例化时,就需要调用到它自己的构造函数,public Calculator(CalcEng e, CalcFace f) {
eng = e;
cf = f;
f.setCalc(this);
}

是构造函数,你就需要给他传进来一个CalcEng类的对象 e和CalcFace 类的对象f。
PS:你发上来个这点代码有点问题,你的 eng和cf是从哪里来的,这两个是成员变量,要再构造方法之前先定义出来的。

类Calculator 构造时,初始化了,eng,cf,而e和f 就是传进构造方法里的参数,而又调用f的setCalc方法对Calculator进行初始化

e f是CalcEng和CalcFace的对象 这俩对象作为构造函数的参数
eng cf也是这俩类的对象 然后赋值 然后调用f的一个方法
eng cf 不知道是定义好的还是继承来的 ...