Java代码学院中的简单基本计算器

时间:2018-06-19 01:07:30

标签: java

我刚刚学会了如何使用类和构造函数,但Idk为什么我的代码没有运行。说非法开始,但我肯定是对的。我也查看了其他人的代码,它们与我的代码相同。有人可以看看有什么不对吗

public class Calculator{//basic calculator

public Calculator(){

    public int add(int a, int b){
      return a+b;
    }
    public int subtract(int a, int b){
      return a-b;
    }
    public int multiply(int a, int b){
      return a*b;
    }
    public int divide(int a, int b){
      if(b==0){
       System.out.println("Error! Dividing by zero is not allowed.");
        return 0;
      }else{
          return a/b;
      }
    }
    public int modulo(int a, int b){
      if(b==0){
       System.out.println("Error! Dividing by zero is not allowed.");
        return 0;
      }else{
          return a%b;
      }
    }
    }
    public static void main(String[]args) {
   Calculator myCalculator = new Calculator();
   System.out.println(myCalculator.add(5, 7));
   System.out.println(myCalculator.subtract(12, 34));
 }


  }

1 个答案:

答案 0 :(得分:2)

删除该行无效的public Calculator() {

编辑:实际上,第二眼看起来该行是一个尝试过的构造函数,但是您将整个类内容包装在括号{}中。这应该有效:

public class Calculator {//basic calculator

    public Calculator() {

    }

    public static void main(String[] args) {
        Calculator myCalculator = new Calculator();
        System.out.println(myCalculator.add(5, 7));
        System.out.println(myCalculator.subtract(12, 34));
    }


    public int add(int a, int b) {
        return a + b;
    }

    public int subtract(int a, int b) {
        return a - b;
    }

    public int multiply(int a, int b) {
        return a * b;
    }

    public int divide(int a, int b) {
        if (b == 0) {
            System.out.println("Error! Dividing by zero is not allowed.");
            return 0;
        } else {
            return a / b;
        }
    }

    public int modulo(int a, int b) {
        if (b == 0) {
            System.out.println("Error! Dividing by zero is not allowed.");
            return 0;
        } else {
            return a % b;
        }
    }

}
编辑#2:正如Wombat指出的那样(我最不喜欢的Java功能之一,因为我花了多少时间进行故障排除)是a / b是整数除法,并且(实际上)永远不会给你你需要的结果。此外,您的方法返回int,这可能不是您的意图。因此,您的除法方法应使用double

public double divide(double a, double b) {
    if (b == 0) {
        System.out.println("Error! Dividing by zero is not allowed.");
        return 0;
    } else {
        return a / b;
    }
}