错误:在类Calculate中找不到主方法,请将main方法定义为:public static void main(String [] args)

use*_*225 4 java methods program-entry-point

我需要帮助主方法,我收到此错误:

Error: Main method not found in class Calculate, please define the main method as:
    public static void main(String[] args)
Run Code Online (Sandbox Code Playgroud)

这是代码:

class Calculate {

private double fn;
private double sn;
private char op;

public void setNumber(double fnum, double snum){
    this.fn = fnum;
    this.sn = snum;
}
public double getNumber1(){
    return fn;
}
public double getNumber2(){
    return sn;
}
public void setOper(char oper){
    this.op = oper;
}
public char getOper(){
    return op;
}
public void getAnswer(){
    double ans;
    switch (getOper()){
        case 'a': {
            ans = add(getNumber1(), getNumber2());
            ansOutput(ans);
            break;
        }case 'b': {
            ans = sub (getNumber1(), getNumber2());
            ansOutput(ans);
            break;
        }case 'c': {
            ans = mul (getNumber1(), getNumber2());
            ansOutput(ans);
            break;
        }case 'd': {
            ans = div (getNumber1(), getNumber2());
            ansOutput(ans);
            break;
        }default:
            System.out.println("--------------------------");
            System.out.println("Invalid choice of operator");
            System.out.println("--------------------------");
        }
    }
    public static double add(double x,double y){
        return x + y;
    }
    public static double sub(double x, double y){
        return x - y;
    }
    public static double mul(double x, double y){
        return x * y;
    }
    public static double div(double x, double y){
        return x / y;
    }

    public static void ansOutput(double x){
        System.out.println("----------- -------");
        System.out.printf("the answer is %.2f\n", x);
        System.out.println("-------------------");
    }
}
Run Code Online (Sandbox Code Playgroud)

小智 8

重新启动IDE,一切都会好的

  • 有时,最复杂的解决方案是最简单的步骤。:) (3认同)

Mel*_*des 6

来自文档

在Java编程语言中,每个应用程序都必须包含一个main方法,其签名为:

public static void main(String[] args)
Run Code Online (Sandbox Code Playgroud)

修饰符public和static可以按任意顺序编写(公共静态或静态公共),但约定是使用public static,如上所示.您可以根据需要为参数命名,但大多数程序员选择"args"或"argv".

正如你所说:

错误:缺少方法体,或声明抽象的public static void main(String [] args); ^这是我在课程名称后添加它后得到的

你可能没有用body声明main(因为';'会在你的错误中暗示).

你需要有一个主体的main方法,这意味着你需要添加{和}:

public static void main(String[] args) {


}
Run Code Online (Sandbox Code Playgroud)

在类定义中添加它.

最重要的是,请学习阅读您​​所获得的文档和错误描述,它们将帮助您多次参与.


Sam*_*wla 5

我的建议:

  • 保持程序模块化。将Calculate类保留在单独的Calculate.java文件中,并创建一个调用main方法的新类。这将使代码可读。
  • 要在数字中设置值,请使用构造函数。不要像上面使用过的方法那样使用:

    public void setNumber(double fnum,double snum){this.fn = fnum; this.sn = snum; }

    存在构造函数来初始化对象。这是他们的工作,他们很擅长。

  • Calculate类的成员的吸气剂似乎已经到位。但二传手不是。Getter和Setters是使用Java进行高效编程的重要一环。也将setter用于fnum和snum

  • 在主类中,使用new运算符和适当的构造函数创建一个Calculate对象。

  • 使用创建的Calculate对象调用getAnswer()方法。

其余代码对我来说看起来不错。是模块化的。您可以以更好的方式阅读程序。

这是我的模块化代码。两个文件:Main.java和Calculate.java

Calculate.java

public class Calculate {


private double fn;
private double sn;
private char op;

    public double getFn() {
        return fn;
    }

    public void setFn(double fn) {
        this.fn = fn;
    }

    public double getSn() {
        return sn;
    }

    public void setSn(double sn) {
        this.sn = sn;
    }

    public char getOp() {
        return op;
    }

    public void setOp(char op) {
        this.op = op;
    }



    public Calculate(double fn, double sn, char op) {
        this.fn = fn;
        this.sn = sn;
        this.op = op;
    }


public void getAnswer(){
    double ans;
    switch (getOp()){
        case '+': 
            ans = add(getFn(), getSn());
            ansOutput(ans);
            break;
        case '-': 
            ans = sub (getFn(), getSn());
            ansOutput(ans);
            break;
        case '*': 
            ans = mul (getFn(), getSn());
            ansOutput(ans);
            break;
        case '/': 
            ans = div (getFn(), getSn());
            ansOutput(ans);
            break;
        default:
            System.out.println("--------------------------");
            System.out.println("Invalid choice of operator");
            System.out.println("--------------------------");
        }
    }
    public static double add(double x,double y){
        return x + y;
    }
    public static double sub(double x, double y){
        return x - y;
    }
    public static double mul(double x, double y){
        return x * y;
    }
    public static double div(double x, double y){
        return x / y;
    }

    public static void ansOutput(double x){
        System.out.println("----------- -------");
        System.out.printf("the answer is %.2f\n", x);
        System.out.println("-------------------");
    }
}
Run Code Online (Sandbox Code Playgroud)

Main.java

public class Main {
    public static void main(String args[])
    {
        Calculate obj = new Calculate(1,2,'+');
        obj.getAnswer();
    }
}
Run Code Online (Sandbox Code Playgroud)