Java-错误:在类Main中找不到Main方法

时间:2019-05-22 05:24:36

标签: java class main

刚开始学习Java,我似乎无法理解为什么收到以下错误消息:

错误:在Main类中未找到Main方法,请将main方法定义为:    公共静态void main(String [] args) 或JavaFX应用程序类必须扩展javafx.application.Application 退出状态1

我正在尝试编写可回答以下问题的代码:

如果它是工作日,则参数weekday为true,如果我们在假期,则参数Vacation为true。如果不是工作日或正在休假,我们会入睡。如果我们入睡,则返回true。

sleepIn(false,false)→是 sleepIn(true,false)→否 sleepIn(false,true)→true

我的代码是:

public class Main {
public boolean sleepIn(boolean weekday, boolean vacation) {
{   return (!weekday || vacation);  }

} }

我将代码更新为以下内容:

public class Main {
  public static void main(String[] args){
    public boolean sleepIn(boolean weekday, boolean vacation)
  }
{   return (!weekday || vacation);  }

}

但现在请执行以下错误消息:

Main.java:3: error: illegal start of expression
    public boolean sleepIn(boolean weekday, boolean vacation)
    ^
Main.java:3: error: ';' expected
    public boolean sleepIn(boolean weekday, boolean vacation)
                          ^
Main.java:3: error: <identifier> expected
    public boolean sleepIn(boolean weekday, boolean vacation)
                                           ^
Main.java:3: error: not a statement
    public boolean sleepIn(boolean weekday, boolean vacation)
                                                    ^
Main.java:3: error: ';' expected
    public boolean sleepIn(boolean weekday, boolean vacation)
                                                            ^
5 errors
compiler exit status 1

我不知道是什么导致了错误

2 个答案:

答案 0 :(得分:0)

public class Main {
    public boolean sleepIn(boolean weekday, boolean vacation) {
        return (!weekday || vacation);
    }
}

在上面的代码中,您有一个Main类和一个sleepIn方法。但是您尚未创建一个主要函数,该函数是您调用sleepIn方法的Java程序的起点。

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

如上所示的错误,您需要使用错误中提到的默认定义定义一个main方法。

public class Main {
  public boolean sleepIn(boolean weekday, boolean vacation) {
    return (!weekday || vacation);
  }

  public static void main(String[] args) {
    Main m = new Main();
    System.out.println(m.sleepIn(false, false));
    System.out.println(m.sleepIn(true, false));
    System.out.println(m.sleepIn(false, true));
  }
}

在main方法中,您将为Main类创建对象,并使用参数调用sleepIn方法,并使用System.out.println方法打印返回的值。

或者,您可以将sleepIn方法作为静态方法编写如下代码,在这种情况下,您不必为Main类创建对象,而可以在main方法中直接调用静态方法。

public class Main {
  public static boolean sleepIn(boolean weekday, boolean vacation) {
    return (!weekday || vacation);
  }

  public static void main(String[] args) {
    System.out.println(Main.sleepIn(false, false));
    System.out.println(Main.sleepIn(true, false));
    System.out.println(Main.sleepIn(false, true));
  }
}

答案 1 :(得分:0)

您的第一个错误是因为您没有main方法,这意味着无法执行任何操作。

public static void main(String[] args) {
  // code
}

这将被执行,但是由于其中还没有代码(因此),因此不会产生任何输出。

您的下一个问题在这里:

public class Main {
  public static void main(String[] args){
    public boolean sleepIn(boolean weekday, boolean vacation)
  }
{   return (!weekday || vacation);  }

}

您必须从主方法调用sleepIn方法,但是不能在主方法中声明它。方法应始终在类或接口级别上声明。

public class Main{
  public boolean sleepIn(boolean weekday, boolean vacation) {
    return !weekday || vacation;
  }

  public static void main(String[] args) {
    Main m = new Main();
    System.out.println("Sleep in: " + m.sleepIn(false, false);
  }
}