java 程序加载过程---2-创建类实例对象
Step1 :父类类中静态变量(类变量)
Step2 :父类中静态代码块
Step3 :子类的中静态变量(类变量)
Step4 :子类中的静态代码块
Step5:父类中的非静态变量
Step6:父类中的非静态变量
Step7:父类构造函数
Step8:子类中的非静态变量
Step9:子类中的非静态代码块
Step10:子类构造函数
class FatherStaticTest
{
public FatherStaticTest()
{
System.out.println("I am in the class Father");
}
public static int fi=100;
public int fii=200;
static
{
System.out.println("fi is"+fi);
}
{
System.out.println("fii is "+fii);
}
}
public class StaticTest extends FatherStaticTest {
public static int k=0;
public static int i=print("i");
public static int n=99;
public int j=print("j");
{
print("构造块");
}
static
{
print("静态块");
}
public static int print(String s)
{
System.out.println(++k+":"+s+"\ti="+i+"\tn="+n);
++n;
return ++i;
}
public StaticTest(String s)
{
System.out.println(++k+":"+s+"\ti="+i+"\tn="+n);
++i;
++n;
}
public static void main(String[] args) {
new StaticTest("Ben");
//StaticTest.print("ben");
}
}
执行结果如下:
D:\myjava>java StaticTest
fi is100
1:i i=0 n=0
2:静态块 i=1 n=99
fii is 200
I am in the class Father
3:j i=2 n=100
4:构造块 i=3 n=101
5:Ben i=4 n=102
D:\myjava>