Java final修饰的成员变量的赋值时机详解及static修饰延伸

final修饰的成员变量只能在对象创建之前或者通过构造器赋值。

常用的赋值途径:

  1. 默认初始化
  2. 显式赋值
  3. 代码块赋值
  4. 构造器赋值
  5. 通过 .属性或 .方法赋值

但是,由于final修饰的成员变量在底层设计时,不允许默认初始化赋值,所以,赋值方法只剩下 :①显式赋值、②代码块赋值和③构造器赋值。

具体为什么不允许默认初始化,转见Java final修饰的成员变量有默认值吗?

我们可以再延伸一下,假如是static final修饰的成员变量

static final修饰的成员变量赋值时机:

我们知道static修饰的话,那说明与对象无关,即构造器赋值不再起作用,且由于非静态代码块是在实例化时起作用。所以你那赋值方法只剩下
①显式赋值 ②静态代码块赋值

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值