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