我们可以在Java中将main()方法声明为非静态方法吗?
公共静态voidmain(Stringar[])方法是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)