错误:在类中找不到主要方法计算,请定义主要方法为:public static void main(String args)
我需要主要方法的帮助,我得到这个错误:
Error: Main method not found in class Calculate, please define the main method as: public static void main(String[] args)
代码如下:
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("-------------------"); } }
重新启动你的IDE,一切都会好的
从文档
在Java编程语言中,每个应用程序都必须包含一个主要方法,其签名是:
public static void main(String[] args)
公共和静态的修饰符可以按照任意顺序(public static或static public)来编写,但是惯例是使用public static,如上所示。 你可以任意指定参数,但大多数程序员select“args”或“argv”。
正如你所说:
错误:缺less方法体,或者声明抽象public static void main(String [] args); ^这是我在课程名称后面加上后得到的
您可能没有声明主体(如“;”会在您的错误中提示)。
你需要有一个主体的方法,这意味着你需要添加{和}:
public static void main(String[] args) { }
将其添加到您的类定义中。
最重要的是,请学会阅读你所得到的文档和错误描述,他们会多次帮助你。
我的build议:
- 保持程序模块化。 将Calculate类保存在一个单独的Calculate.java文件中,并创build一个调用main方法的新类。 这将使代码可读。
-
要设置数字中的值,请使用构造函数。 不要像上面使用的方法一样使用:
public void setNumber(double fnum,double snum){this.fn = fnum; this.sn = snum; }
存在构造函数来初始化对象。这是他们的工作,他们很擅长。
-
Calculate类的成员似乎已经到位了。 但是制定者不是。 Getter和Setter是java高效编程桥梁中的重要组成部分。 为fnum和snum提供setter
-
在主类中,使用new运算符和构造函数创build一个Calculate对象。
-
用创build的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("-------------------"); } }
Main.java
public class Main { public static void main(String args[]) { Calculate obj = new Calculate(1,2,'+'); obj.getAnswer(); } }
你在哪里写的代码
public class Main { public static void main(String args[]) { Calculate obj = new Calculate(1,2,'+'); obj.getAnswer(); } }
在这里,您必须运行“Main”类而不是在程序开始时创build的类。 要做到这一点,请去运行configuration,并search这个类名“主要”,这是在这个主要的方法(公共静态无效的主要(stringargs []))。 你会得到你的输出。
你似乎还没有创build一个主要的方法,这应该看起来像这样(我不知道)
class RunThis { public static void main(String[] args) { Calculate answer = new Calculate(); answer.getNumber1(); answer.getNumber2(); answer.setNumber(answer.getNumber1() , answer.getNumber2()); answer.getOper(); answer.setOper(answer.getOper()); answer.getAnswer(); } }
重点是你应该在某个类下创build一个main方法,在编译之后你应该运行包含main方法的.class文件。 在这种情况下,主要的方法是RunThis即RunThis.class。
我是新来的Java这可能或可能不是正确的答案,纠正我,如果我错了