一个java类初始化的全过程,其中包含继承,静态变量,构造函数。
package reuse;
public class Beetle extends insect {//甲壳虫
private int k = printInt("Beetle.k initailized ");
public Beetle() {
System.out.println("k = " + k + ",j = " + j);
}
private static int x2 = printInt("x2 initailized");
public static void main(String[] args) {
System.out.println("main*****");
Beetle beetle = new Beetle();
}
}
class insect {//昆虫
private int i = 9;
protected int j;
public insect() {
System.out.println("i = " + i + ",j = " + j);
j = 39;
}
private static int x1 = printInt("x1 initailized");
static int printInt(String s) {
System.out.println(s);
return 14;
}
}
输出结果:
x1 initailized
x2 initailized
main*****
i = 9,j = 0
Beetle.k initailized
k = 14,j = 39
加载过程:
1、访问静态变量;main函数是第一个static,然后基类的static,依次往外部类寻找。
2、创建对象;从基类的基本数据类型开始初始化,设置默认值,然后这里是自动加载构造函数,依次往外部类加载。