标签:public 依次 void 方法 常见 const ring 语法 场景
Java语言提供了很多类初始化的方法,包括构造器、初始化器等。除了这两种方法之外,我们还可以用初始化块(initialization block)来实现初始化功能。
初始化块是出现在类声明中的语句块,它位于所有成员、函数、构造器之外。例如使用静态初始化块,我们的HelloWorld可以这么写:
public class Hello {
static {
System.out.println("Hello, world!");
}
public static void main(String[] args) {
}
}
首先,初始化器和初始化块会按照出现顺序依次执行。之后,构造器的代码开始执行。以下的示例包含了三种初始化的方式,并且刻意安排了顺序。
public class Init {
Say hello = new Say("hello");
Say world = new Say("world");
{
new Say("static block");
}
Init() {
System.out.println("Construction complete.");
}
Say bye = new Say("Bye!");
public static void main(String[] args) {
Init i = new Init();
}
}
class Say {
Say(String s) {
System.out.println(s);
}
}
以下输出结果展示了对象初始化代码的执行顺序:
$ java Init
hello
world
static block
Bye!
Construction complete.
对于静态初始化块,JVM保证它在类加载之后、实际使用之前被执行,一次。
尽管初始化器和构造器已经可以满足大多数初始化的需求,在几种场景下初始化块还是非常有用的。
标签:public 依次 void 方法 常见 const ring 语法 场景
原文地址:https://www.cnblogs.com/cocode/p/12253080.html