Java静态块、自由块及构造函数的执行顺序是什么
导读:本文共3084字符,通常情况下阅读需要10分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 静态块格式:static{}静态块在类被加载的时候执行,又因为加载子类时,会预先加载父类,因此父类中如果有静态块,则最先执行。然后立即执行子类的静态块。如果一个类中有多个静态块,则按照编码的先后顺序执行。注:由于类只会被加载一次,因此每个静态块便只会执行一次。自由块格式:{}自由块在类被实例化时执行。如果要实例化一个子类,那么他的构造函数会先实例化其父类。因此父... ...
目录
(为您整理了一些要点),点击可以直达。静态块格式:
然后开始构造子类。
packagecom.lsky.test;
publicclassFather{
privateintsum;
//父类中的静态块
static{
System.out.println("2010年新年快乐");
}
publicvoidfirst(inti){
sum=++i+sum++-1+i--;
System.out.println(sum);
}
//父类无参构造器
publicFather(){
System.out.println("美好的一天");
}
//含参数构造器
publicFather(Strings){
System.out.println("我们是学生");
}
//父类中的自由块
{
System.out.println("菩提本无树,明镜亦非台,本来无一物,何处惹尘埃");
}
}
packagecom.lsky.test;
publicclassSonextendsFather{
privateintsum;
privatestaticFatherfather;
//子类中含参构造器(含参构造函数)
publicSon(Fatherfather){
this();
father.first(8);
}
//子类中无参构造器(无参构造函数)
publicSon(){
this.punk(6);
}
publicvoidfirst(inti){
sum=sum+i++;
System.out.println(sum);
}
//子类中的静态块
static{
Fatherf=newSon();
f.first(4);
}
intpunk(intsum){
sum=sum;
returnsum;
}
//子类中的自由块
{
System.out.println("曾经沧海难为水,除却巫山不是云");
}
publicstaticvoidmain(Stringargsp[]){
Sonson=newSon(newSon());
}
}
//输出结果为:
2010年新年快乐
菩提本无树,明镜亦非台,本来无一物,何处惹尘埃
美好的一天
曾经沧海难为水,除却巫山不是云
4
菩提本无树,明镜亦非台,本来无一物,何处惹尘埃
美好的一天
曾经沧海难为水,除却巫山不是云
菩提本无树,明镜亦非台,本来无一物,何处惹尘埃
美好的一天
曾经沧海难为水,除却巫山不是云
8
Java静态块、自由块及构造函数的执行顺序是什么的详细内容,希望对您有所帮助,信息来源于网络。