为什么main()方法在Java中必须是静态的?
静态-如果您声明方法,子类,块或静态变量,则将其与类一起加载。
在Java中,只要需要调用(实例)方法,就应该实例化(包含它的)类并调用它。如果我们需要不实例化地调用方法,则它应该是静态的。此外,静态方法与类一起被加载到内存中。
对于main方法,它是由JVM直接调用的,因此无法通过实例化其类来调用它。并且,它应该与类一起加载到内存中并可以执行。因此,主要方法应该是静态的。
当主要方法为非静态时
公共静态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)
热门推荐
1 如何训练狗狗不叫
2 训练狗狗不叫
3 训练狗狗随行
4 怎么训练狗狗不叫
7 训练比熊狗狗教程
10 上海狗狗训练
11 怎么训练狗狗上厕所
12 训练狗狗趴下
13 狗狗服从训练
14 训练狗狗拒食
15 训练狗狗笑
16 训练狗狗大便
17 训练狗狗立
18 训练狗狗捡东西