2016-03-28 4 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 = 11の代わりに1 + 1 = 2にしようとしています。したがって、値の入力を保持しようとしていて、同時に新しい値を追加しようとしています。私が間違っている可能性がある、またはモデル化しているが、私はかなり確信していない。そして、私は静的(これは絶対に私のクラスで禁止されている)メートル、他の人がそう見ては標準です また、この、メソッドシグネチャのすべての中に - 。。。

公共int型実行(int型引数)

が含まれなければなら事前に

感謝を

+0

あなたの質問は何ですか?なんでしょう?あなたは何かにこだわっていますか? –

+0

最初の数値は_valueに、次に演算子、次に_vaの2番目の値を格納する必要がありますか?あなたはこれにこだわっていますか? – Nanoc

+0

申し訳ございません。 _vaは別の変数を導入しようとしましたが、削除することはできません。 1 + 1 = 11の代わりに1 + 1(別の1を追加している間に1を保持する)などの別の値を追加している間に、add_keyPressedに別の値をどのように配置するのが基本的です。 – dabberson567

答えて

1

ここでは、変更の一覧
1.
4.アップデートが押されたキーと等しいクラス
3.変更オペレータ変数のデフォルト値を設定するためのコンストラクタにオペレータ変数を追加オペレータ
2用の列挙型を追加しています方法
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; 
    } 
} 
関連する問題