今天培训的时候,为了演示java类的初始化过程,我写了一个类。
不过因为没有准备好,导致演示失败了。呵呵
现在我整理了一下思路,把这个例子重新写了一下。
代码如下,java文件可以见附件。执行一下——>所有疑惑都在《Thinking in java》的“初始化和清理”那一章,有兴趣者请查阅。
// New.java
/**
* 演示类的初始化过程
* @author yangxg
*/
public class New extends Old {
public static void main(String[] args) {
System.out.println("-->运行new New(\"5\")");
New new1 = new New("new_1");
}
static Flag staticFlag1 = new Flag("static_flag_1");//静态变量
static{
System.out.println("New类静态代码块初始化");//静态块
}
Flag flag1 = new Flag("flag_1");//类变量
public New(String i) {//构造函数
super(i+"父类");
System.out.println(i+"构造函数初始化");
}
}
class Old{
static Flag staticFlag0 = new Flag("static_Flag_0");
static{
System.out.println("Old类静态代码块初始化");
}
Flag flag0 = new Flag("flag_0");
/**
* @param name 对象引用名称
*/
Old(String name){
System.out.println(name+"的构造函数初始化");
}
}
class Flag{
Flag(String f){
System.out.println(f+"初始化");
}
}
【2008-3】