5.9 初始化块
与构造器作用非常类似的是初始化块,它也可以对Java
对象进行初始化操作。
5.9.1 使用初始化块
初始化块是Java
类里可出现的第4种成员(前面3中成员依次为成员变量
、方法
和构造器
)。
一个类里可以有多个初始化块,相同类型的初始化块之间有顺序:前面定义的初始化块先执行,后面定义的初始化块后执行。
初始化块的语法格式如下:
1 | [修饰符] { |
初始化块可以有哪些修饰符
初始化块的修饰符只能是static
,使用static
修饰的初始化块被称为静态初始化块。初始化块里的代码可以包含任何可执行性语句,包括定义局部变量
、调用其他对象的方法
,以及使用分支
、循环语句
等。
初始化块先执行
当创建Java
对象时,系统总是先调用该类里定义的初始化块,
如果定义了多个初始化块,则前面定义的初始化块先执行,后面定义的初始化块后执行。
没必要写多个普通初始化块
虽然Java
允许一个类里定义多个普通初始化块,但这么做没有任何意义。完全可以把多个普通初始化块合并成一个初始化块,从而可以让程序更加简洁,可读性更强。
普通初始化块 和 实例变量的初始化 按源码顺序执行
普通初始化块、声明实例变量指定的默认值都可认为是对象的初始化代码,它们的执行顺序与源程序中的排列顺序相同。如果普通初始化块和实例变量初始化语句同时出现,则出现在后面的会覆盖前面设置的值.
先执行普通初始化块,再执行构造器
原文链接: 5.9 初始化块 5.9.1 使用初始化块