java main方法

public class Demo {
	public static void main(String[] args) {
		System.out.println("Hello Word");
	}
}

myeclipse右键时没有出现java application.

检查main方法是否书写正确:

public static void main(String[] args){

}

其中方法名不能写错,比如main2等。

      1、为什么是公共的(public)

       我们都知道,Java指定了一些可访问的修饰符如:private,protected,public。每个修饰符都有它对应的权限,public权限最大,为了说明问题,我们假设main方法是用private修饰的,那么main方法出了Demo这个类对外是不可见的。那么,JVM就访问不到main方法了。因此,为了保证JVM在任何情况下都可以访问到main方法,就用public修饰。

       2、为什么是静态的(static)

       静态可以让JVM调用main方法的时候更加方便,不需要通过对象调用。但这么说的话说服力好像还不够,那我们同样先假设没有static。“main”方法写成:

public class Demo {
    public void main(String[] args) {
        System.out.println("Hello Word");
    }
}
此时,JVM要调用main方法可以这样做:new Demo().main();对于这种情况来说显然是可以的。但是我们接着看下面这种情况:

public class Demo {
    public Demo(String name,int age){
        
    }
    public void main(String[] args) {
        System.out.println("Hello Word");
    }
}
这种情况下,Demo这个类没有了无参构造方法,只有带参的构造方法。此时要创建对象就会调用的带参的构造方法,而带参的构造方法必然是要接受参数的,可是对于JVM来讲,根本就不知道要传递什么参数。所以,将main方法设计成静态的,就避免了这种问题。

       3、为什么没有返回值(void)

       这个很好理解,假设是有返回值的,JVM调用了main方法,main将数据返回给JVM,main方法一旦返回数据,也就意味着程序结束了,而JVM要这个返回的数据是没有意义的。所以就设计main方法为void。

      4、main

       这个没什么好说的,只不过是JVM能识别的一个特殊的函数名而已。

      5、String [] args

      担心某些程序在启动的时候需要参数,这个我在这里简单演示一下使用方法,好像几乎用不到。

public class Demo {
    public void main(String[] args) {
        System.out.println("数组的长度:"+args.length);
        for (int i = 0; i < args.length; i++) {
            System.out.println(args[i]+",");
        }
    }
}

猜你喜欢

转载自blog.csdn.net/Scarlett1994/article/details/84235237