java高手进!!关于计算器算法的几个问题!

来源:百度知道 编辑:UC知道 时间:2024/05/26 06:34:37
字数限制 请大侠移步这里见程序:http://zhidao.baidu.com/question/16943088.html?si=1

问题如下:

1)String s="",s1;
为什么这里s不初始化(不加“”)的时候 程序就会出错啊?

2)if(s.equals("+")) d1 = d1+d2;
……
程序的这里 d2 有什么用 啊?为什么前面没出现而这里能用啊 有实际意义么?

3)还有 那位大侠能把public void actionPerformed(ActionEvent e) {……}(如果太麻烦的话就说说他的加减乘除是如何实现的)这个
里面的算法详细解释一下啊 虽然有了注释,但对于我这个java新手来说还是
太少了。(我希望能取得上课听讲时候的效果…………呵呵!麻烦了!!不好意思啊)
当然不会让高手白忙活的,越详细越好,之后我还会在加分的!!

1 java就是这样,尽量所有用的对象都初始化。
if(s.equals("+")) d1 = d1+d2;//加法运算
else if(s.equals("-")) d1 = d2-d1;//减法运算
else if(s.equals("*")) d1 = d1*d2;//乘法运算
else if(s.equals("\\"))d1 = d2/d1;//除法运算

如果s不初始化,那么s为null,s.equals就会出错,因为空对象不能调方法。可以改成("+".equals(s)),就不用初始化。其他类似
不过要保持号的习惯。

2 double d1,d2;

是全局变量,前面有定义的,好好看。一个比较复杂的算法,你搜索一下看看d2都在哪出现了,d2好像没用,我没有编译环境,你好好看!

3 理解下事件驱动,不是按程序顺序的!