java main函数不执行?

今天脑袋短路,对于这个问题纠结了好久。这个问题具体是这样的:

public class test {

    public static void main(String[] args) {
        test2 t = new test2();
        System.out.println("" + t.i);
        t.meth();

    }

}
public class test2 {
    public Integer i=5;
    test2(){
        System.out.println("构造函数");
    }
    public static void main(String[] args) {
        System.out.println("main函数");
    }
    public void meth(){
        System.out.println("普通方法");
    }

}

此程序运行结果如下:

我当时就问:java不是从main开始吗?怎么test2的main函数没有执行?

于是开始了各种不解。

后来才恍然大悟,main是java程序的入口,java也的确是从main开始的,需要注意的是main这个入口是对于整个java程序而言,不是对于某了类!因此,此入口只能有一个,且只执行一个!否则,所有的main函数都可作入口了,那就乱套了。

原文地址:https://www.cnblogs.com/scetopcsa/p/3839954.html