Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中保留和添加另一个变量?_Java_Parameter Passing_Modeling - Fatal编程技术网

如何在Java中保留和添加另一个变量?

如何在Java中保留和添加另一个变量?,java,parameter-passing,modeling,Java,Parameter Passing,Modeling,编程新手,所以请放松 我正在为课堂开发一个计算器应用程序。我必须设置加法、减法、乘法和除法 package part1.code; import part1.user_interface.CalculatorUI; public class Calculator { private static final int BASE = 10; private int _value; private int _va; private CalculatorUI _ui; public Calcul

编程新手,所以请放松

我正在为课堂开发一个计算器应用程序。我必须设置加法、减法、乘法和除法

package part1.code;

import part1.user_interface.CalculatorUI;

public class Calculator {

private static final int BASE = 10;
private int _value;
private int _va;
private CalculatorUI _ui;

public Calculator(CalculatorUI calculatorUI) {
    _ui = calculatorUI;
    _value = 0;

}

public void digit_0_keyPressed() {
    _value = _value * BASE + 0;
    _ui.updateDisplay();
}
public void digit_1_keyPressed() {
    _value = _value * BASE + 1;
    _ui.updateDisplay();
}
public void digit_2_keyPressed() {
    _value = _value * BASE + 2;
    _ui.updateDisplay();
}
public void digit_3_keyPressed() {
    _value = _value * BASE + 3;
    _ui.updateDisplay();
}
public void digit_4_keyPressed() {
    _value = _value * BASE + 4;
    _ui.updateDisplay();
}
public void digit_5_keyPressed() {
    _value = _value * BASE + 5;
    _ui.updateDisplay();
}
public void digit_6_keyPressed() {
    _value = _value * BASE + 6;
    _ui.updateDisplay();
}
public void digit_7_keyPressed() {
    _value = _value * BASE + 7;
    _ui.updateDisplay();
}
public void digit_8_keyPressed() {
    _value = _value * BASE + 8;
    _ui.updateDisplay();
}
public void digit_9_keyPressed() {
    _value = _value * BASE + 9;
    _ui.updateDisplay();
}
public void clear_keyPressed() {
    _value = 0;
    _ui.updateDisplay();
}
public int getValue() {
    return _value;
}

public void equal_keyPressed() {
    _value = _value;
    _ui.updateDisplay();

    // TODO Define this method
}

public void add_keyPressed() {
    _value = 



    _ui.updateDisplay();

    // TODO Define this method

  }
}
现在,举个例子,你要做的一件基本的事情是1+1。对于add_键,我试图得到1+1=2,而不是1+1=11。因此,我试图保持输入值,同时添加新值。这听起来像是参数传递(我可能错了),或者建模,但我不太确定。如果没有静态(在我的类中是绝对禁止的),我不知道如何做,从我看到其他人做的,这是标准。 此外,在所有这些中,还有一个方法签名-

公共整数执行(整数参数)

必须包括在内


提前感谢。

以下是更改列表
1.为运算符添加枚举
2.将运算符变量添加到类中
3.更改构造函数以设置运算符变量的默认值
4.更新等于按键法
5.更新添加按键方法

public class Calculator {

    private static final int BASE = 10;
    private int _value;
    private int _va;
    private CalculatorUI _ui;
    private Operator op;

    private enum Operator {
        ADD, SUB, MUL, DIV, NO_OPERATION
    };

    public Calculator(CalculatorUI calculatorUI) {
        op = Operator.NO_OPERATION;
        _ui = calculatorUI;
        _value = 0;
    }

    public void digit_0_keyPressed() {
        _value = _value * BASE + 0;
        _ui.updateDisplay();
    }

    public void digit_1_keyPressed() {
        _value = _value * BASE + 1;
        _ui.updateDisplay();
    }

    public void digit_2_keyPressed() {
        _value = _value * BASE + 2;
        _ui.updateDisplay();
    }

    public void digit_3_keyPressed() {
        _value = _value * BASE + 3;
        _ui.updateDisplay();
    }

    public void digit_4_keyPressed() {
        _value = _value * BASE + 4;
        _ui.updateDisplay();
    }

    public void digit_5_keyPressed() {
        _value = _value * BASE + 5;
        _ui.updateDisplay();
    }

    public void digit_6_keyPressed() {
        _value = _value * BASE + 6;
        _ui.updateDisplay();
    }

    public void digit_7_keyPressed() {
        _value = _value * BASE + 7;
        _ui.updateDisplay();
    }

    public void digit_8_keyPressed() {
        _value = _value * BASE + 8;
        _ui.updateDisplay();
    }

    public void digit_9_keyPressed() {
        _value = _value * BASE + 9;
        _ui.updateDisplay();
    }

    public void clear_keyPressed() {
        _value = 0;
        _ui.updateDisplay();
    }

    public int getValue() {
        return _value;
    }

    public void equal_keyPressed(String uimessage) {
        if (Operator.ADD.equals(op)) {
            _value += _va;
        } else if (Operator.MUL.equals(op)) {
            _value *= _va;
        } else if (Operator.DIV.equals(op)) {
            _value = _va / _value;
        } else if (Operator.SUB.equals(op)) {
            _value = _va - _value;
        }
        _va = 0;
        op = Operator.NO_OPERATION;
        _ui.updateDisplay();
    }

    public void add_keyPressed() {
        if (!Operator.NO_OPERATION.equals(op)) {
            equal_keyPressed();
        } else {
        _ui.updateDisplay();
        }

        _va = _value;
        _value = 0;
        op = Operator.ADD;
    }

    public void mul_keyPressed() {
        if (!Operator.NO_OPERATION.equals(op)) {
            equal_keyPressed();
        } else {
            _ui.updateDisplay();
        }

        _va = _value;
        _value = 0;
        op = Operator.MUL;
    }
}

你的问题是什么?你想要什么?你有什么问题吗?你需要先在_值中存储第一个数字,然后在运算符中存储第二个值,然后在_va中存储第二个值?你有这个问题吗?对不起,忘记了,_va是试图重新设置另一个变量,这是我将删除的一次性方法。我基本上想让add_键按下另一个va当我添加另一个值时,如1+1(当我添加另一个1时,它保持1)=2,而不是1+1=11。