为什么main()方法在Java中必须是静态的?
静态-如果您声明方法,子类,块或静态变量,则将其与类一起加载。
在Java中,只要需要调用(实例)方法,就应该实例化(包含它的)类并调用它。如果我们需要不实例化地调用方法,则它应该是静态的。此外,静态方法与类一起被加载到内存中。
对于main方法,它是由JVM直接调用的,因此无法通过实例化其类来调用它。并且,它应该与类一起加载到内存中并可以执行。因此,主要方法应该是静态的。
当主要方法为非静态时
公共静态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 methodas:public static void main(String[] args)
以上是 为什么main()方法在Java中必须是静态的? 的全部内容, 来源链接: utcz.com/z/343290.html