当前位置: 代码迷 >> J2SE >> 初始化块,该怎么解决
  详细解决方案

初始化块,该怎么解决

热度:41   发布时间:2016-04-23 21:17:46.0
初始化块
public class HideTest
{
    //先执行初始化块将a Field赋值为6
    {
a = 6;
    }
    //再执行将a Field赋值为9
    int a = 9;

    public static void main(String[] args) 
    {
        //下面代码将输出9。
System.out.println(new HideTest().a);
    }
}

a = 6先执行的
为什么没有给a指定类型也能初始化?

------解决方案--------------------
1. 初始化块执行的时候,是为field 初始化了,所以它的类型是已知的。
2. 初始化执行的时候和你放的位置有关,你这里的放置就相当于,首先将a初始化为6,然后你本身声明的时候又给了一个显示的初始化值,就又被替换成9了。如果你把初始化块放在声明的后面,就会产生先被初始化为9,后被替换为6.
请参考下面的文章:
http://blog.csdn.net/shiyanming1223/article/details/6888188
  相关解决方案