我的java代码有什么问题,它不会编译?

时间:2016-03-19 23:15:39

标签: java class public

好的,所以我输入了一个java代码来做一个简单的功能。每次我输入它都不会让我编译。我在这段代码中的错误在哪里?

public int add(int a, int b) {
 int sum;
 sum = a + b;
}
public static void main(String[] args){
 int x = 5;
 double y = 7; 
 int total = add(x,y);
 System.out.println(total);
}

5 个答案:

答案 0 :(得分:2)

多个编译器错误:

  • 声明add方法返回int,但它没有return语句
  • main方法为static,无法调用非静态方法add
  • add的第二个参数必须是int,但在通话中您传递的是double

可能的修复:

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

public static void main(String[] args){
    int x = 5;
    int y = 7;
    int total = add(x, y);
    System.out.println(total);
}

答案 1 :(得分:0)

你已经编写了add方法来获取两个整数参数,但是已经传递了一个整数和一个double。

答案 2 :(得分:0)

我认为这是因为你的方法不是“静态的”

答案 3 :(得分:0)

您的方法add必须返回 int,并且在没有实例的情况下调用它应该是static。像,

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

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

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

创建该课程的new个实例并在其上调用add(修复return问题后)。

答案 4 :(得分:0)

起初你要上课。阶级可以是名词,是现实生活中的一件事。例如SumNumber 像这样:

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

    public Sum() {
    }


    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Sum sum = new Sum();
        System.out.println(sum.add(6, 9));

    }

}

我认为您应该了解有关面向对象编程的更多信息。