日期:2014-05-20  浏览次数:20652 次

Java中static变量和方法的难题?
看下面这段代码:

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方法?

------解决方案--------------------
因为程序是从MAIN方法开始加载的~
定义为STATIC就免了你实例化对象的步骤,可以直接调用而已。
------解决方案--------------------
public void Function 和 public void main不能同时存在,
编译单元起什么名字就按那个
------解决方案--------------------
同意smigo的观点
------解决方案--------------------
你每编写一个class的文件只能有一个public class,而只能这个public class有main方法。这个main是你开始运行的时候入口函数。一切都从这开始。
至于static方法,他是一种用类名加方法名就可以使用了,其他方法只能是实例加方法名才能用