码迷,mamicode.com
首页 > 编程语言 > 详细

java类初始化顺序

时间:2019-10-16 20:13:34      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:kde   style   dem   initial   顺序   位置   ring   new   his   

public class InitializeBlockDemo {


    public static void main(String[] args) {
        
        InitializeBlockClass obj=new InitializeBlockClass();
        System.out.println(obj.field);
        
        obj=new InitializeBlockClass(300);
        System.out.println(obj.field);
    }

}

class InitializeBlockClass{
    //下面这句在初始化块之前与之后,会影响到field字段的初始值
    //public int field=100;
    
    {
        field=200;
    }//初始化块
    public int field=100;
    public InitializeBlockClass(int value){
        this.field=value;
    }
    public InitializeBlockClass(){
        
    }
}

上面一段代码,执行结果上会因为类的“初始化块”和“成员定义时的初始化”位置不同而导致其运行结果不同,这就证明了在java类中初始化块与成员定义时的初始化并不存在执行优先级的区分,而是根据他们位置执行,实例成员的值会是最后运行的部分所赋予的值。

java类初始化顺序

标签:kde   style   dem   initial   顺序   位置   ring   new   his   

原文地址:https://www.cnblogs.com/liuleliu/p/11687592.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!