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

java 8object oriented programmingprogramming

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

您可以在不使用 static  修饰符的情况下在程序中编写 main 方法,程序会顺利编译,不会出现编译错误。 

但是,在执行时,JVM 不会将此新方法(不带静态)视为程序的入口点。  它搜索公共、静态、返回类型为 void 且以字符串数组为参数的 main 方法。

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

如果未找到此类方法,则会生成运行时错误。

示例

在类 Sample 中的以下 Java 程序中,我们有一个公共的 main 方法,它不返回任何内容(void),并接受字符串数组作为参数。但不是静态的。

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)

相关文章