Java教程

代码块(初始化块)

本文主要是介绍代码块(初始化块),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

  代码块

  1、介绍:代码块类似于方法,是类的成员之一。但和方法不同,代码块没有方法名、没有返回类型(void也不能写)、没有参数列表。根据是否被static修饰,可分为静态代码块和非静态代码块。

  2、作用:可以理解为,代码块相当于另一种形式的构造器,或者可以说,代码块是对构造器的一种补充,可以实现对Java对象的初始化操作。

  3、应用场景:如果多个构造器中都有重复的语句,可以抽取到代码块中,以提高代码的复用性。

  4、几点注意事项:

    1)类在什么情况下会被加载?

      ①创建对象实例的时候。

      ②创建子类对象实例的时候,父类和子类都会被加载。

      ③使用类的静态属性、静态方法的时候。

    2)对于静态代码块,其作用是对类进行初始化,是随着类的加载而执行的,并且只执行一次(因为类只加载一次)。

    3)如果只是使用类的静态成员,是不会执行非静态代码块的。

    4)构造器的最前面实质上隐藏了 super( ) 和非静态代码块的调用。

    5)没有继承关系时,创建一个对象的时候,在一个类中各个成员的调用顺序:

      ①调用静态代码块,静态属性初始化。(优先级一样,按照在类中定义的顺序依次执行)

      ②调用非静态代码块,非静态属性初始化。(优先级一样,按照在类中定义的顺序依次执行)

      ③调用构造器

    6)存在继承关系时,创建一个对象的时候,父类和子类中各个成员的调用顺序:

      ①调用父类的静态代码块,父类的静态属性初始化。(优先级一样,按照在类中定义的顺序依次执行)

      ②调用子类的静态代码块,子类的静态属性初始化。(优先级一样,按照在类中定义的顺序依次执行)

      ③调用父类的非静态代码块,父类的非静态属性初始化。(优先级一样,按照在类中定义的顺序依次执行)

      ④调用父类的构造器

      ⑤调用子类的非静态代码块,子类的非静态属性初始化。(优先级一样,按照在类中定义的顺序依次执行)

      ⑥调用子类的构造器

 

 

 

 

 

 

 

 

 

 

 

  

  

这篇关于代码块(初始化块)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!