黑马程序员技术交流社区

标题: 求助:关于对final修饰的变量只能赋值一次的疑问 [打印本页]

作者: 蔡增辉    时间: 2013-5-12 18:31
标题: 求助:关于对final修饰的变量只能赋值一次的疑问
本帖最后由 刘胜寒 于 2013-5-13 09:06 编辑

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

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


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

3.PNG

作者: 小陈期待逆袭    时间: 2013-5-12 18:42
    final修饰实例变量时只能在下面三种情况对变量进行初始化
   1   在定义final实例变量时初始值  
  2、在非静态初始化块中为final实例变量指定初始值  
  3、在构造器中为final实例变量指定初始值  
希望可帮助到你。

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




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2