代码块内容梳理

基本介绍

代码块又称为初始化块,属于类中的成员,类似于方法,讲代码语句封装在方法体内,通过**{}**包围起来。
但和类中方法有不同,代码块没有方法名,没有参数列表,没有返回值,只有方法体,而且不用通过对象或类显式调用,而是加载类时,实例化对象时隐式调用。



基本语法

修饰符 {
	代码语句
};
//修饰符要么不填 要么只能填static  分号可加可不加
//加上static就是静态代码块,不加的时候就是普通代码块


细节

静态代码块
  • 静态代码块只能调用静态属性或静态方法
  • 静态代码块,随着类的加载而被执行,并且只会执行一次
  • 类何时被加载
    • 创建类的实例化对象时 new
    • 创建子类对象时,父类对象也会被加载,并且先执行父类的静态代码块
    • 使用类的静态属性或静态方法时
普通代码块
  • 实例代码块可以编写多个,也是遵循自.上而下的顺序依次执行
  • 实例代码块在构造方法执行之前执行,构造方法执行依次,实例代码块对应执行一次。
  • 普通代码块可以调用静态和非静态的属性和方法
  • 普通代码块,在创建类的实例化对象时会被隐式调用,每创建一次就会调用一次,如果有继承关系,会先执行父类的普通代码块
  • 如果只是使用类的静态属性或静态方法时,普通代码块并不会被执行。


在一个单类中的调用顺序

  1. 调用静态代码块静态属性初始化(注意:静态代码块和静态属性初始化调用的优先级一样,如果有多个静态代码块和多个静态变量初始化,则按他们定义的顺序调用)
  2. 调用普通代码块普通属性初始化(注意:普通代码块和普通属性初始化调用的优先级一样,如果有多个普通代码块和多个普通变量初始化,则按他们定义的顺序调用)
  3. 调用构造方法


在有继承关系的类中的调用顺序

  1. 父类的静态代码块和静态属性(优先级一样,按定义的顺序执行)
  2. 子类的静态代码块和静态属性(优先级一样,按定义的顺序执行)
  3. 父类的普通代码块和普通属性初始化(优先级一样,按定义的顺序执行)
  4. 父类的构造方法
  5. 子类的普通代码块和普通属性初始化(优先级一样,按定义的顺序执行)
  6. 子类的构造方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值