public class abcd
{
abcd()
{
this(12);
System.out.println("no parameter construct");
}
abcd(int x)
{
System.out.println("one parameter construct");
}
{
System.out.println("init");
}
static
{
System.out.println("static init");
}
public static void main(String args[])
{
new abcd(12);
new abcd();
}
}
--------------------------
为什么结果是这样的啊 ,谁能解释下,谢谢
static init
init
one parameter construct
init
one parameter construct
no parameter construct
{
abcd()
{
this(12);
System.out.println("no parameter construct");
}
abcd(int x)
{
System.out.println("one parameter construct");
}
{
System.out.println("init");
}
static
{
System.out.println("static init");
}
public static void main(String args[])
{
new abcd(12);
new abcd();
}
}
--------------------------
为什么结果是这样的啊 ,谁能解释下,谢谢
static init
init
one parameter construct
init
one parameter construct
no parameter construct
由于非静态语句块每个类都会有,所以每次new 的时候都会执行,而静态块是一个类拥有同一个,所以只输出一次。
System.out.println("init");
}第一次见这种写法,貌似每次new一个对象都要执行一次。
static静态块只执行一次。
System.out.println("init");
}
普通代码块