java经典回顾

Code:

//Insect.class
package test;

class Insect {
int i = 9;
int h=y1;
static int y1=8;
int j;

Insect() {
prt("i = " + i + ", j = " + j);
j = 39;
}

static int x1 = prt("static Insect.x1 initialized");

static int prt(String s) {
System.out.println(s);
return 47;
}
}

//Beetle.class
public class Beetle extends Insect {
int k = prt("Beetle.k initialized");

Beetle() {
prt("k = " + k);
prt("j = " + j);
}

static int x2 = prt("static Beetle.x2 initialized");

public static void main(String[] args) {
prt("Beetle constructor");
Beetle b = new Beetle();

}
}
/* 1。首先试着访问Beetle.main() 这是一个静态方法。
* 2。到外面去找到为Beetle类编译好的代码Beetle.class
* 3。装载Beetle.class过程中发现Beetle有基类。
* 4。初始化基类
* 1)先初始化static
* 2)然后按文字顺序继续初始化普通变量
* 5。初始化派生类
* 1)先初始化static
* 2)然后按文字顺序继续初始化普通变量
* 6。执行main里的主体程序(按文字顺序执行)
* 1)prt("Beetle constructor");
* 2)实例化一个派生类(Beetle b = new Beetle();)
* 1)基类构造函数
* 2)派生类构造函数
*
* 考点:static变量的初始化和访问;构造函数的使用
* */

你可能感兴趣的:(java)