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)
来自文档
在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)
在类定义中添加它.
最重要的是,请学习阅读您所获得的文档和错误描述,它们将帮助您多次参与.
我的建议:
要在数字中设置值,请使用构造函数。不要像上面使用过的方法那样使用:
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
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)
public class Main {
public static void main(String args[])
{
Calculate obj = new Calculate(1,2,'+');
obj.getAnswer();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
94971 次 |
| 最近记录: |