Java中static变量和方法的难题?

andevele 2007-11-14 10:10:41
看下面这段代码:

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方法?
...全文
209 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xian_hf 2007-11-18
  • 打赏
  • 举报
回复
中午吃米饭,你就不能吃面条一样~~~
wangzhuming 2007-11-18
  • 打赏
  • 举报
回复
你不调用当然不会执行了
fbeacon 2007-11-17
  • 打赏
  • 举报
回复
这个问题不要考虑的太复杂.
从概念来说:
类中成员包括:方法,属性,代码块.

从运行机制来说:
java程序加载是有顺序的.就和WINDOWS启动一样,按照自定好的步骤执行.
java程序执行时.先会找到main方法,然后在从此方法中调用其方法和属性(代码块不能被调用,特殊,这里不考虑).
你可以做个2个实验。
1,当将main方法去掉,运行时会报错误.提示缺少main方法.

2,(在没有别的程序来调用此类的方法情况下,单就此类中来说的情况下)
如果在main方法中不去调用其属性和方法,则java程序不会自动调用其方法、属性.执行后无任何操作。

此外,在JAVA中方法的调用需要先将其实例化,但声明其为静态后可以直接在main中调用,
但这时此静态方法中不可以再使用非静态的变量(属于类中的属性).



zdjray 2007-11-14
  • 打赏
  • 举报
回复
这个不是一回事
main是程序入口
是特殊的static 方法
而Function是要用 Test_Static.Function(str)才能执行的

你说的那种申明为成员
是如下的情况
public static variable = fun();

这样fun()就可以执行了
andevele 2007-11-14
  • 打赏
  • 举报
回复
为什么同样因为也是静态的 function 方法得不到执行?

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧