创建java计算器,我想用答案替换为第一个数字?

创建java计算器,我想用答案替换为第一个数字?,java,eclipse,class,methods,calculator,Java,Eclipse,Class,Methods,Calculator,所以我创建了一个java计算器,现在如何通过内存类访问答案并替换为第一个数字?示例:1+1=2,然后使用答案(2)作为我的第一个数字,使方程为2+1=3 import java.util.*; public class calculatortest { private Num num; private Ope ope; private Mem mem; public static void main(String args[]){ calcula

所以我创建了一个java计算器,现在如何通过内存类访问答案并替换为第一个数字?示例:1+1=2,然后使用答案(2)作为我的第一个数字,使方程为2+1=3

import java.util.*;

public class calculatortest
{
    private Num num;
    private Ope ope;
    private Mem mem;
    public static void main(String args[]){
        calculatortest c = new calculatortest();
        c.start();
    }

    public calculatortest()
    {
    }
    public void start()
    {
        while(true)
        {

            describeProgram();
            getInput();
            getMemory();
        }
    }
    private void describeProgram()
    {
        System.out.println("this is my program and it starts from here");

    }
    private void getInput()
    {
        String number1;
        String operator2;
        String number2;

        Scanner scanner = new Scanner(System.in);
        System.out.print("Number 1: ");
        number1 = scanner.next();
        System.out.print("Operator: ");
        operator2 = scanner.next();
        System.out.print("Number 2: ");
        number2 = scanner.next();

        Num num1= new Num(number1);
        Num num2 = new Num(number2);
        Ope ope = new Ope(num1, operator2, num2);
        Num answer = ope.equation;
        if (answer.type == 'i') {
            System.out.println("Answer: " + answer.iNum);
        } else if (answer.type == 'd') {
            System.out.println("Answer: " + answer.dNum);
        }
    }   
    private void getMemory()
    {
        System.out.println("Enter 'YES' to use previous answer OR 'NO' to exit!");
        Scanner scanner = new Scanner(System.in);
        String number1 = scanner.next();

        if (number1.equals("YES")){
            mem.getStorednumber();

        } else if(number1.equals("NO")){
            System.exit(0);
        }

    }
}


class Num                                   //Type checking the numbers
{ 
    public char type;
    public double dNum;
    public int iNum;

    public Num(String value)
    {
        if (value.contains(".")) {          //I if the values contain a decimal point run double
            type = 'd';
            dNum = Double.parseDouble(value);
        } else 
        {                           // Else run as integer
            type = 'i';
            iNum = Integer.parseInt(value);
        }
    }
    public Num(int value) {
        type = 'i';
        iNum = value;
    }
    public Num(double value) {
        type = 'd';
        dNum = value;
    }
    class Ope{

        public String operator2;
        public Num num1, num2;
        public Num equation;
        public Ope(Num num1, String operator2, Num num2 )
        {
            this.num1 = num1;
            this.operator2 = operator2;
            this.num2 = num2;
            equation = answer();
        }
        public Num answer() {

            if(operator2.equals("+"))
            {
                if(num1.type == 'i' && num2.type == 'i'){
                    int answer = num1.iNum + num2.iNum;
                    return new Num(answer);
                }
                else if
                (num1.type == 'i' && num2.type =='d'){
                    double answer = num1.iNum + num2.dNum;
                    return new Num(answer);             
                }
                else if 
                (num1.type == 'd' && num2.type =='i'){
                    double answer = num1.dNum + num2.iNum;
                    return new Num(answer);
                }
                else if
                (num1.type == 'd' && num2.type =='d'){
                    double answer = num1.dNum + num2.dNum;
                    return new Num(answer);
                }
            }
            else if(operator2.equals("-"))
            {
                if(num1.type == 'i' && num2.type == 'i'){
                    int answer = num1.iNum - num2.iNum;
                    return new Num(answer);
                }
                else if
                (num1.type == 'i' && num2.type =='d'){
                    double answer = num1.iNum - num2.dNum;
                    return new Num(answer);             
                }
                else if 
                (num1.type == 'd' && num2.type =='i'){
                    double answer = num1.dNum - num2.iNum;
                    return new Num(answer);
                }
                else if
                (num1.type == 'd' && num2.type =='d'){
                    double answer = num1.dNum - num2.dNum;
                    return new Num(answer);
                }
            }
            else if(operator2.equals("*"))
            {
                if(num1.type == 'i' && num2.type == 'i'){
                    int answer = num1.iNum * num2.iNum;
                    return new Num(answer);
                }
                else if
                (num1.type == 'i' && num2.type =='d'){
                    double answer = num1.iNum * num2.dNum;
                    return new Num(answer);             
                }
                else if 
                (num1.type == 'd' && num2.type =='i'){
                    double answer = num1.dNum * num2.iNum;
                    return new Num(answer);
                }
                else if
                (num1.type == 'd' && num2.type =='d'){
                    double answer = num1.dNum * num2.dNum;
                    return new Num(answer);
                }
            }
            else if(operator2.equals("/"))
            {
                if(num1.type == 'i' && num2.type == 'i')
                {
                    int answer = num1.iNum / num2.iNum;
                    System.out.println("Modulo " + num1.iNum % num2.iNum);
                    return new Num(answer);
                }
                else if
                (num1.type == 'i' && num2.type =='d'){
                    double answer = num1.iNum / num2.dNum;
                    return new Num(answer);             
                }
                else if 
                (num1.type == 'd' && num2.type =='i'){
                    double answer = num1.dNum / num2.iNum;
                    return new Num(answer);
                }
                else if
                (num1.type == 'd' && num2.type =='d'){
                    double answer = num1.dNum / num2.dNum;
                    return new Num(answer);
                }
            }
            return null;
        }
    }


    class Mem /// THIS IS WERE THE PROBLEMS PERTAINS.
    {
        void getStorednumber() {

        System.out.println(" memory answer is ");   
    }

   }

你的类
Mem
应该存储答案…对吗?那么,你是怎么做到的

class Mem {
    private Num storedAnswer;

    public void setStoredAnswer(Num newAnswer) {
        storedAnswer = newAnswer;
    }
    public Num getStoredAnswer() {
        return storedAnswer;
    }
}

要使计算器执行此操作,请执行以下操作:

     number_a = (put your number here)

     number_b = (put your number here)
     class Calculator
      def add(number_a, number_b)
        number_a + number_b
      end

      def subtract(number_a, number_b)
        number_a - number_b
      end
    end
如果我的数字是2,数字是1,那么:

     number_a = 2

     number_b = 1
     class Calculator
      def add(number_a, number_b)
        number_a + number_b
      end

      def subtract(number_a, number_b)
        number_a - number_b
      end
    end

在文本编写器中编写计算器。如果你运行它,它将无法工作,除非你做多一点编辑。希望它有帮助。

您需要给它一个变量,适当的类编码意味着您应该将其设置为私有并创建公共get/set方法。私人住宅;如果我理解不存在的问题,那么通过使用返回值和传递参数就可以很容易地做到这一点。