A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 刘胜寒 于 2013-5-13 09:06 编辑

一直没想明白这个问题,向大家求助,已知两个知识点:
1. 被 final 修饰的变量只能赋值;
2. 类中的成员变量初始化顺序:默认初始化,显示初始化,构造代码块初始化,构造函数初始化;
写了一个简单的程序,FinalDemo 中有一被final修饰的成员变量a,在创建对象时才被初始化,
根据知识点2,这样 a 岂不是经历了两次赋值:默认初始化,和构造函数出事化?

代码如下: 打印结果为3;


3.PNG (6.78 KB, 下载次数: 0)

3.PNG

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

1 个回复

正序浏览
    final修饰实例变量时只能在下面三种情况对变量进行初始化
   1   在定义final实例变量时初始值  
  2、在非静态初始化块中为final实例变量指定初始值  
  3、在构造器中为final实例变量指定初始值  
希望可帮助到你。

  final修饰类变量是 只能在两种情况下对变量进行初始化  
1、在定义final类变量是初始值  
2、在静态初始化块中为final类变量指定初始值  

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马