用static修饰的初始化块就称为静态初始化块。
需要特别注意:静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。
看一段代码:
public class HelloWorld { String name; // 声明变量name String sex; // 声明变量sex static int age;// 声明静态变量age // 构造方法 public HelloWorld () { System.out.println("通过构造方法初始化name"); name = "tom"; } // 初始化块 { System.out.println("通过初始化块初始化sex"); sex = "男"; } // 静态初始化块 static { System.out.println("通过静态初始化块初始化age"); age = 20; } public void show() { System.out.println("姓名:" + name + ",性别:" + sex + ",年龄:" + age); } public static void main(String[] args) { // 创建对象 HelloWorld hello = new HelloWorld(); // 调用对象的show方法 hello.show(); } }
运行结果:
通过静态初始化块初始化age 通过初始化块初始化sex 通过构造方法初始化name 姓名:tom,性别:男,年龄:20
因为静态初始化块在类加载的时候就执行了,所以先输出的静态初始化块中的输出内容。然后执行普通初始化块,最后才执行构造方法。由于静态初始化块只在类加载的时候执行且只执行一次,所以在再次创建对象hello2的时候就没有执行静态初始化块了。
以上是JAVA开发之如何操作静态初始化块的详细内容。更多信息请关注PHP中文网其他相关文章!