我们可以在 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)