请选择 进入手机版 | 继续访问电脑版
本站特色:极好的技术研究氛围!所有技术发帖,必有回复! 做最受欢迎的Java论坛

疯狂Java联盟

 找回密码
 加入联盟
查看: 408|回复: 2

[疯狂Java讲义] 疯狂java讲义中关于final的一处错误

[复制链接]
发表于 2017-6-18 13:39:56 | 显示全部楼层 |阅读模式
书中关于final修饰的类成员变量时说,使用之前要显式赋值,不赋值会报错,且java不会对其进行隐式初始化,但是我在Eclipse写如下代码,运行后输出0和5,说明final修饰的a在赋初值之前也能访问,且java会对其进行隐式初始化。a改成静态变量,在静态初始化块中也有同样的效果
package com.koushuo.rk;
public class KK {
        final int a;
       
        {
                hh();
                a=5;
                hh();
        }
       
        void hh()
        {
                System.out.println(a);
        }
       
        public static void main(String[] args)
        {
                KK k=new KK();
        }
}
发表于 2017-7-3 08:05:04 | 显示全部楼层
类成员变量不是都能隐式初始化吗?
发表于 2017-11-12 15:15:41 | 显示全部楼层
从代码可以看出:final成员变量需要赋初始值,
这种通过方法在构造器或初始化块为final成员变量赋初始值之前来使用它,确实有点特殊。
您需要登录后才可以回帖 登录 | 加入联盟

本版积分规则

视频、代码、电子书下载
请关注"疯狂图书"公众号
QQ交流1群: 545923995  未满

小黑屋|手机版|Archiver|疯狂Java联盟 ( 粤ICP备11063141号 )

GMT+8, 2017-11-24 15:40 , Processed in 0.231128 second(s), 7 queries , File On.

快速回复 返回顶部 返回列表