2019年10月14日动手动脑(实验总结,初始化)

一、题目

 二、源代码

public class Setup {
    
    public int value=300;
    
    public test() {
        value=200;
    }
    {
        value=100;
    }
    public void print() {
        System.out.println(value);
    }
    public static void main(String[] args) {
        test A =new test();
        A.print();
    }
}
Setup1(先定义再初始化块最后构造)

public class test {
    
    public int value=300;
    
    
    {
        value=100;
    }
    public void print() {
        System.out.println(value);
    }
    public static void main(String[] args) {
        test A =new test();
        A.print();
    }
}
Setup2(先定义再初始化块无构造)

public class test {
    
    public int value=300;
    public void print() {
        System.out.println(value);
    }
    public static void main(String[] args) {
        test A =new test();
        A.print();
    }
}
Setup3(定义)

 三、分析

  最后的初始化结果要看谁最后运行,谁最后运行就是谁的值。运行顺序是先定义,再初始化块,最后构造方法。另外类的初始化块不接收任何的参数,而且只要一创建类的对象,它们就会被执行。因此,适合于封装那些“对象创建时必须执行的代码”。

原文地址:https://www.cnblogs.com/suanai/p/11695014.html