简单的Calc用户输入,我需要将其分解为不同的Java eclipse类

简单的Calc用户输入,我需要将其分解为不同的Java eclipse类,java,eclipse,class,calculator,Java,Eclipse,Class,Calculator,所以我得到了一个有效的计算,它得到了+,-,/,*并且在询问用户是否想继续后关闭,这里的事情是我试图将它分解为不同的类,所以我得到了一个主类应用程序,它只要求用户提供一些东西和类,这些类得到了操作符的代码等等 但我真的不知道该怎么做,我试着做了不同的课程,把每一门课都放在一个单独的课堂上,但没有效果,你们有谁能帮忙吗 这是我的自动取款机代码 package com.example.main; import java.util.Scanner; public class Main{ publ

所以我得到了一个有效的计算,它得到了+,-,/,*并且在询问用户是否想继续后关闭,这里的事情是我试图将它分解为不同的类,所以我得到了一个主类应用程序,它只要求用户提供一些东西和类,这些类得到了操作符的代码等等 但我真的不知道该怎么做,我试着做了不同的课程,把每一门课都放在一个单独的课堂上,但没有效果,你们有谁能帮忙吗

这是我的自动取款机代码

package com.example.main;

import java.util.Scanner;

public class Main{
 public static void main(String[] args) {


boolean status = true;
while (status){

    Scanner minScanner = new Scanner(System.in);
    System.out.println("Skriv in ditt nummer en och en :\n");
    double nr1 = Double.parseDouble(minScanner.nextLine());
    double nr2 = Double.parseDouble(minScanner.nextLine());

    System.out.println("välj vad du vill göra: ");

    double svar = 0;

    String användarInlägg = minScanner.nextLine();

    if (användarInlägg.equalsIgnoreCase("+"))
    {
        svar = nr1 + nr2;
    } else if (användarInlägg.equalsIgnoreCase("-"))
    {
        svar = nr1 - nr2;
    } else if (användarInlägg.equalsIgnoreCase("*"))
    {
        svar = nr1 * nr2;
    } else if (användarInlägg.equalsIgnoreCase("/")) 
    {
        svar = nr1 / nr2;
    }
    System.out.printf("= %.2f\n ", svar);
    System.out.println("Skriv in J för att fortsätta N för att sluta: \n");


    String input = minScanner.nextLine();

    if (input.equalsIgnoreCase("N"))
        status = false;
    else if (input.equalsIgnoreCase("J")) {
        status = true;
            }
    }

}

}

这里有一个非常原始的计算器,因为它只支持像23+这样的表达式。 如果您不想计算更复杂的表达式,则有一个已完成大部分工作的。向其中添加评估非常容易。这就形成了一个可扩展的、结构良好且健壮的解析器。添加函数、条件和三元运算符也很简单

我让它在54纳秒的时间内对2.4+-5/2.4--5*100/2.4*-5这样的表达式求值,在运行时编译成字节码只需5纳秒

interface MathOp {
public double doMath(double a, double b);
}

class Add implements MathOp{

  public double doMath(double a, double b) {
    return (a + b);
  }

}

class Sub implements MathOp{

  public double doMath(double a, double b) {
    return (a - b);
  }

}

// do the same for multiplication and divison
在课堂上使用main方法

class SimpleCalc {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    double a,b,c;
    int choice = 0;
    a=b=c=0.0;
    while(true) {
      System.out.println("Enter two numbers");
      a = Double.parseDouble(sc.nextLine());
      b = Double.parseDouble(sc.nextLine());

      System.out.println("Enter your choice");
      System.out.println("1. Add");
      System.out.println("2. Sub");
      System.out.println("3. Mul");
      System.out.println("4. Div");

      choice = Integer.parseInt(sc.nextLine());

      switch(choice) {
       case 1 :
              c = new Add().mathOp(a,b);
              break;
       case 2 :
              c = new Sub().mathOp(a,b);
              break;
       // do the same for the other classes and use a default case.
       }

      //print the results here and then ask the user's choice

      System.out.println("would you like to continue? (Y/N)");
      if("N".equalsIgnoreCase(sc.nextLine())) { // careful with the paranthesis 
        break;
      }
    }
  }
}

请不要无礼,我不太擅长这一点,只是想知道我的问题是否愚蠢然后键入为什么不只是像omg这样的回答你很愚蠢你说你试图将代码放在不同的类中,你能发布那些课程吗,这样我们就可以看到什么不起作用了?谢谢我看了它看起来不错,但现在只是尝试使用简单的计算和课程:非常感谢我的帮助,我让它与dup和division一起工作,我还将尝试添加一些其他内容,但这对我很有帮助,非常感谢展示这一点, bow@user2764700标出一个曾经解决过你的问题的答案