Java:代表块和final关键字

本篇文章解决问题

1. 代码块

2. 属性赋值顺序

3. final关键字

1. 代码块

1.1 代码块的作用

用来初始化类、对象的信息。

1.2 代码块的分类

代码块要是使用修饰符,只能使用static,因此分为静态代码块和非静态代码块:

  1. 静态代码快:
    • 内部可以输出语句
    • 随着类的加载而执行,而且只执行一次
    • 可以初始化类的信息
    • 如果一个类中定义了多个静态代码块,则按照声明的先后顺序执行
    • 静态代码块的执行要优先于非静态代码块的执行
    • 静态代码块内部只能调用静态属性、方法,不能调用非静态结构
  2. 非静态代码块:
    • 内部可以输出语句
    • 随着对象的创建而执行
    • 每创建一个对象,就执行一次非静态代码块
    • 可以在创建对象时,对对象的属性等进行初始化
    • 如果一个类中定义了多个非静态代码块,则按照声明的先后顺序执行
    • 非静态代码块内部可以调用静态属性、方法,或非静态的属性、方法

1.3 代码块加载顺序

当实例化子类对象时,涉及到父类、子类中静态代码块、非静态代码块、构造器的加载顺序。

  1. 父类静态代码块
  2. 子类静态代码块
  3. 父类非静态代码块
  4. 父类构造器
  5. 子类非静态代码块
  6. 子类构造器

2. 属性赋值顺序

其顺序为:

  1. 默认初始化
  2. 显式初始化
  3. 在代码块中赋值
  4. 构造器中初始化
  5. 有了对象后,可以通过“对象. 属性”或“对象. 方法”的方式,进行赋值

3. final关键字

3.1 可以用来修饰

类、方法、变量

3.2 具体说明

  1. final用来修饰一个类:此类不能被其他类继承。 如:String类、System类、StringBuffer类。
  2. final用来修饰方法:表明此方法不可以被重写。 如:Object类中getClass( )
  3. final用来修饰变量:此时的“变量”就可以称为是一个常量。
    • final修饰属性:要考虑赋值的位置:显式初始化、代码块中初始化、构造器中初始化
    • final修饰局部变量:尤其是使用final修饰形参时,表明此形参是一个常量,当我们调用此方法时,给常量形参赋一个实参,一旦赋值,以后就只能在方法中使用此形参,但不能重新赋值
  4. static final用来修饰属性:全局常量
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值