首页 > 其他分享 >02类与对象-动手动脑

02类与对象-动手动脑

时间:2022-11-12 23:46:22浏览次数:47  
标签:02 初始化 动脑 System Mid 动手 println public out

代码:


class Root
{
static
{
System.out.println("Root的静态初始化块");
}
{
System.out.println("Root的普通初始化块");
}
public Root()
{
System.out.println("Root的无参数的构造器");
}
}
class Mid extends Root
{
static
{
System.out.println("Mid的静态初始化块");
}
{
System.out.println("Mid的普通初始化块");
}
public Mid()
{
System.out.println("Mid的无参数的构造器");
}
public Mid(String msg)
{
//通过this调用同一类中重载的构造器
this();
System.out.println("Mid的带参数构造器,其参数值:" + msg);
}
}
class Leaf extends Mid
{
static
{
System.out.println("Leaf的静态初始化块");
}
{
System.out.println("Leaf的普通初始化块");
}
public Leaf()
{
//通过super调用父类中有一个字符串参数的构造器
super("Java初始化顺序演示");
System.out.println("执行Leaf的构造器");
}

}

public class TestStaticInitializeBlock
{
public static void main(String[] args)
{
new Leaf();

}
}

 

结果:

 

 结论:

如果定义初始化块时使用了static修饰符,则变成了静态初始化块。静态初始化块时类相关的,系统将在类初始化阶段执行静态初始化块,而不是在创建对象时才执行。

因此静态初始化块总是比普通初始化块先执行。

 

与普通初始化块类似的是,系统在类初始化阶段执行静态初始化块时,不仅会执行本类的静态初始化块,而且还会一直上溯到java.lang.Object类,先执行java.lang.Object类中的静态初始化块,然后执行其父类的静态初始化块,最后才执行该类的静态初始化块。经过这个过程,才完成了该类的初始化过程。只有当类初始化完成后,才可以在系统中使用这个类,包括访问类method、类Field,或者用这个类来创建实例。

 

示例:class Method1

{

static {

System.out.println("Method1静态初始化块");

}

 

{

System.out.println("Method1普通初始化块");

}

 

public Method1(){

System.out.println(" Method1无参的构造器");

}

}

 

class Mid extends Method1

{

static {

System.out.println("Mid静态初始化块");

}

 

{

System.out.println("Mid普通初始化块");

}

 

public Mid(){

System.out.println("Mid无参的构造器");

}

public Mid(String msg)

{

this();

System.out.println("Mid的带参构造器,其参数值为:"+msg);

}

}

 

public class Method2 extends Mid

{

static {

System.out.println("Method2静态初始化块");

}

 

{

System.out.println("Method2普通初始化块");

}

 

public Method2(){

super(”方法2的无参构造器");

System.out.println(" Method2无参的构造器");

}

 

}

 

public class Test

{

public static void main(String [] args)

{

new Method2();

}

}

标签:02,初始化,动脑,System,Mid,动手,println,public,out
From: https://www.cnblogs.com/xlm926/p/16885132.html

相关文章