java代码块

java代码块,第1张

普通代码块:

代码化块又称为初始化块,属于类中的成员[即是类的一部分],类似于方法,将逻辑语句封装在方法体中,通过{ }包围起来。

  • 相当于另外一种形式的构造器(对构造器的补充机制),可以做初始化的 *** 作
  • 场景:如果多个构造器中都有重复的语句,可以抽取到初始化块中,提高代码的重用性

静态代码块:

  • static代码块也叫静态代码块,作用就是对类进行初始化,而且它随着类的加载而执行,并且只会执行一次
  • 普通代码块,每创建一个对象,就执行。
  • 类什么时候被加载[重要!]
  1. 创建对象实例时(new)

代码:

结果:

 

  1. 创建子类对象实例,父类也会被加载

代码:

 

 

结果:

 

  1. 使用类的静态成员时(静态属性,静态方法)

代码:

 

 

结果:

 

  1. 一个类创建一个对象时,调用顺序:
  1. 调用静态代码块和静态属性初始化(注意:它们优先级一样,在多个调用时,按照顺序调用)
  2. 调用普通代码块和普通属性的初始化(注意:它们优先级一样,在多个调用时,按照顺序调用)
  3. 调用构造方法
  1. 创建一个子类对象时(继承关系),调用顺序如下:
    1. 父类的静态代码块和静态属性(优先级一样,按定义顺序执行)
    2. 子类的静态代码块和静态属性(优先级一样,按定义顺序执行)
    3. 父类的普通代码块和普通属性初始化(优先级一样,按定义顺序执行)
    4. 父类的构造方法
    5. 子类的普通代码块和普通属性初始化(优先级一样,按定义顺序执行)

子类的构造方法

  1. 静态代码块只能直接调用静态成员(静态属性和静态方法),普通代码块可以调用任意成员。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/874162.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-08
下一篇 2022-05-08

发表评论

登录后才能评论

评论列表(0条)

保存