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

java中类属性是什么时候进行赋值的呢?
package day;

public class Et1{
public static int i;
public Et1(){
test();
}
public void test(){
System.out.println(i);
}
public static void main(String[] args){
new Et2();
new Et2();
}
}
class Et2 extends Et1{
private int i=10;
public void test(){
System.out.println(i);
}
}

请教各位大侠,以上代码运行结果是0,这个结果是怎么得到的呢?

------解决方案--------------------
类加载完时初始化静态变量 static i = 0;
new Et2()调用Et2构造方法,默认空的,调用父类构造方法
public Et1(){
test();
}

test()方法输出静态的i 
结果为0

------解决方案--------------------
类加载的时候
------解决方案--------------------
你这是涉及到 静态变量、非静态变量;全局变量、私有变量;这些很好理解的,关键是记住:很重要的一点是静态变量是在类加载的时候初始化的