10月6日学习日志

今天学习了字段初始化的规律。

class InitializeBlockClass
{
    {
        field=200;
    }
    public int field=100;
    public InitializeBlockClass(int value){
        this.field=value;
    }
    public InitializeBlockClass(){

    }
}

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);
    }

}

运行结果

结果分析

(1)

{

    field=200;

}

该部分为类的初始化块,可以在类中使用“{”和“}”将语句包围起来,直接将其作为类的成员。类的这种“没有名字”的“成员”,多用于初始化类的字段。 

(2)

public int field=100;  在定义时进行初始化,此时field = 100;

(3)

System.out.println(obj.field); 输出field的值100

(4)

obj=new InitializeBlockClass(300);

System.out.println(obj.field);

利用构造方法进行初始化,field的值初始化为300,输出300

4.Java字段初始化的规律。

(1)执行类成员定义时指定的默认值或类的初始化块,到底执行哪一个要看哪一个“排在前面”。

(2)执行类的构造函数。

注:类的初始化块不接收任何的参数,而且只要一创建类的对象,它们就会被执行。因此,适合于封装那些“对象创建时必须执行的代码”。

原文地址:https://www.cnblogs.com/20193925zxt/p/14157315.html