70.static*块
接下来讲讲static*块。
前面提到了*块(游离块),那么作为Java源代码特殊的组成部分,是可以用static来修饰的。修饰后的结果我们来分析下。
*块可以看成是一种特殊的方法,这个方法没有方法名、没有输入参数、没有返回值,不能进行方法调用。从这个角度来看,在*块前面也可以加上static关键字来修饰。这样,这个*块就成了静态*块。静态*块通常用于初始化静态变量。
public class Count {
private int serialNumber;
public static int counter;
static {
System.out.println("static*块被执行");
counter = 1;
}
public static int getTotalCount() {
return counter;
}
public Count() {
counter++;
serialNumber = counter;
}
public static void main(String[] args) {
System.out.println("main() invoked");
System.out.println("counter = " + Count.counter);
}
}
在这个类中,定义了一个静态的int类型变量counter,然后在static*块中初始化这个变量。编译并运行这个程序,可以得到如下的输出:
static*块被执行
main() invoked
counter = 1
因为static*块是类相关而不是实例相关的,所以,即使没有实例化对象,它也会被执行(在main()方法中没有实例化这个类)----它将向控制台输出“static*块被执行”并将静态变量“counter”初始化成1。
上一篇: PHP异常类及异常处理操作实例详解
下一篇: .NET Core中本地化机制的深入讲解