我们可以在Java中将main()方法声明为非静态方法吗?

公共静态void main(String ar [])方法是Java中执行的入口点。当我们运行.class文件时,JVM搜索main方法并逐行执行它的内容。

您可以在没有static 修饰符的情况下在程序中编写main方法,从而可以在没有编译错误的情况下编译程序。 

但是,在执行JVM时,JVM不会将此新方法(没有静态方法)视为程序的入口点。它搜索主要方法,该方法是公共的,静态的,返回类型为void,并将String数组作为参数。

public static int main(String[] args){
}

如果找不到这种方法,则会生成运行时错误。

示例

在类Sample中的以下Java程序中,我们有一个main方法,该方法是public,不返回任何值(无效),并接受String数组作为参数。但是,不是静态的。

import java.util.Scanner;
public class Sample{
   public void main(String[] args){
      System.out.println("This is a sample program");
   }
}

输出结果

在执行时,此程序会产生以下错误-

Error: Main method is not static in class Sample, please define the main method as − public static void main(String[] args)
猜你喜欢