主题:请问!!
cacti1983
[专家分:30] 发布于 2007-10-21 22:48:00
public class Hello
{
static
{
System.out.println("Hello,world!");
}
}
这个程序没有main(),但是执行后会输出Hello,world!但是若将static去掉,就不会输出,请问这是为什么呢?
回复列表 (共4个回复)
沙发
我要飞飞飞 [专家分:180] 发布于 2007-10-22 02:09:00
好象不行吧
板凳
haoboy0817 [专家分:880] 发布于 2007-10-22 07:25:00
道理很简单:
static{ ...... }
这是一个静态初始化器,它是在类加载时系统自动调用的,所以你编译时。系统加载该类顺便调用该初始化器,所以执行时打印出 hello world!
但紧接着系统还会提示没有静态 main()!!!!
静态初始化器和类的构造函数很类似,但构造函数是在用该类产生对象时,系统调用的
3 楼
sjhlovejava [专家分:1690] 发布于 2007-10-22 08:53:00
public class Test {
static {
System.out.println("111111111");
}
Test(){
System.out.println("222222222");
}
/**
* @param args
*/
public static void main(String[] args) {
new Test();
System.out.println("33333333333");
}
}
执行结果:
111111111
222222222
33333333333
4 楼
橘子酱 [专家分:190] 发布于 2007-10-22 09:40:00
2楼正解
我来回复