java中初始化成员变量的优先级

2018-12-03  本文已影响0人  山坡上的斐德洛
/*
* 在Java中,有三种对于成员变量进行赋初值的操作:
*   1. 定义时初始化
*   2. 构造代码块
*   3. 构造函数
*
* 优先级问题:
*   如果在代码中存在构造方法,那么成员变量的值按照构造方法中的为准
*   如果只有构造代码块和定义时初始化,那么谁在后,谁就决定最终值
* */
class Test{
    int num = 1000;
    {
        num = 2000;
    }
    public Test(){
        num = 3000;
    }
}

public class 初始化成员变量 {
    public static void main(String[]args){
        Test t = new Test();

        // 最终结果为3000
        System.out.println(t.num);
    }
}
上一篇下一篇

猜你喜欢

热点阅读