2016-03-28 85 views
-1

編程新手,所以請放心吧。如何在Java中保留並添加另一個變量?

我正在上課的計算器應用程序。我必須建立加法,減法,乘法和除法的方法。

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_keyPressed,我試圖達到1 + 1 = 2,而不是1 + 1 = 11。所以,我試圖保持值輸入,並同時添加新的值。這聽起來像我'm參數傳遞(我可能是錯誤的),或者建模,但我不太確定,而且我不知道如何在沒有Static的情況下這樣做(這是我的班級絕對禁止的)米看到別人做的,是標準的 另外,內這一切,方法簽名 - 。

公衆詮釋執行(INT ARG)

必須包括事先

感謝

+0

你有什麼問題嗎?你想要什麼?你在卡住什麼嗎? –

+0

您將需要在_value中存儲第一個數字,然後是運算符,然後是_va中的第二個數值?你堅持這樣嗎? – Nanoc

+0

對不起 忘了,_va是試圖安裝另一個變量,它的一次性刪除我會刪除。 我bascially想要add_keyPressed如何另一個值,而我添加另一個值,如1 + 1(其中1,而我添加另一個1)= 2,而不是1 + 1 = 11。 – dabberson567

回答

1

這裏是更改列表
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; 
    } 
} 
相關問題