首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java相关 >

java中类属性是什么时候进行赋值的呢?该如何解决

2012-04-04 
java中类属性是什么时候进行赋值的呢?package daypublic class Et1{public static int ipublic Et1(){te

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

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

热点排行