对象被创建时,对象的构造函数是否先于一切动作而运行呢?
如题。 问题点数:20、回复次数:4Top
1 楼Eraserpro(叶·飘·零)回复于 2003-09-02 21:49:40 得分 10
好像不是,看看:
public class Test{
static
{
System.out.println("first");
}
Test()
{
System.out.println("Test()");
}
public static void main(String args[])
{
try{
Test t=new Test();
}catch(Exception e){System.out.println(e);}
}
}Top
2 楼yeiliuxing(流星)回复于 2003-09-02 22:05:36 得分 10
其实也应该算是吧
static{
...
}
和
{
...
}
都是匿名的初始化块
static 静态初始化块在第一次调用该类的静态成员或生成第一个实例时执行
而第二个是在生成实例时执行
不过搂主好像不是问这个意思
如果抛弃这两项可以认为是当对象被创建时,对象的构造函数是先于一切动作而运行的Top
3 楼seaman0916(沙漠孤鹰)回复于 2003-09-03 01:27:30 得分 0
static 静态初始化块在第一次调用该类的静态成员时被初始化的!
但是如果没有调用静态的成员,即使生成对象时,也不会初始静态的成员!直到第一个静态成员的调用!才全部初始化!先数据,后函数, 按出现的顺序!Top
4 楼yangxile(robocode玩家)回复于 2003-09-03 03:32:08 得分 0
都是匿名的初始化块
static 静态初始化块在第一次调用该类的静态成员或生成第一个实例时执行
而第二个是在生成实例时执行
Top




