我们能否在 Java 中将 main() 方法声明为非静态方法?


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

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

但是,在执行时,JVM 不会将这个新方法(没有 static)视为程序的入口点。它会搜索公共的 main 方法,该方法具有 static、返回类型为 void,并且有一个 String 数组作为参数。

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

如果没有找到这样的方法,就会产生一个运行时错误。

示例

在 Sample 类中的以下 Java 程序中,我们有一个 main 方法,它公开,无返回值(void),并接受一个 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)

更新时间: 2020 年 6 月 29 日

7K+ 浏览数

开始你的 职业生涯

完成课程,获得认证

开始学习
广告