用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中文网其它相关文章!
已抢186273个
抢已抢67161个
抢已抢352786个
抢已抢666835个
抢已抢121672个
抢已抢22633个
抢