看下面这段代码:class Simple1
{
static void go(){
     System.out.println("i am in the go method");
   }
}
public class Test_Static {
public static void Function(String [] args)   //(1)
{
System.out.println("i am in the Function method");
}
/**
 * @param args
 */
public static void main(String[] args)   //(2)
         {
// TODO Auto-generated method stub
System.out.println("i am in the main method");  }}运行结果是:
i am in the main method我的问题是:不是说如果一个成员被声明为static,它就能够在它的类的任何对象创建之前被访问,而不必引用任何对象。既然方法 Function 和 方法 main 都是静态的,为什么程序加载的时候,只会执行main方法而不去加载function方法?

解决方案 »

  1.   

    因为程序是从MAIN方法开始加载的~
    定义为STATIC就免了你实例化对象的步骤,可以直接调用而已。
      

  2.   

    public void Function   和   public void  main不能同时存在,
    编译单元起什么名字就按那个
      

  3.   

    按照你说的那样就是说不管怎么样 main 方法 是一个很“特殊"的方法不管怎么样首先加载执行它对吗?是这样理解的吗
      

  4.   

    不是很特殊,是十分特别以及非常的特殊~
    一段程序没MAIN方法就不会运行了。
      

  5.   

    同意smigo的观点
      

  6.   

    你每编写一个class的文件只能有一个public class,而只能这个public class有main方法。这个main是你开始运行的时候入口函数。一切都从这开始。
    至于static方法,他是一种用类名加方法名就可以使用了,其他方法只能是实例加方法名才能用