本帖最后由 ZhaoYuBetter 于 2013-5-6 17:34 编辑
参考 agile Java:
new 对象时,构造函数会执行,如果需要在类级别进行复杂的初始化,可使用静态初始化代码块完成;statc{};
静态块经常用来进行类属性的初始化;
类似有实例块:可进行成员变量的初始化;当然可以在构造函数中,初始化;为什么有这个呢?
有个匿名内部类,他是没有构造函数,如果要实现成员变量的初始化,就可以使用这个了,在 Swing中比较多见!- public class Test {
- private static String staticVar1 = "staticVar1"; // 声明时初始化;
- private static String staticVar2;
- private static String staticVar3;
- private static final String FINAL_VAR4; // 可在静态块里面执行初始化
- private String var1 = "var1"; // 声明时初始化
- private String var2;
- private String var3;
- /**
- * 如果静态变量,初始化比较复杂,可以放在静态块里面
- */
- static {
- System.out.println("1.静态块开始执行了。。。");
- staticVar2 = "staticVar2";
- staticVar3 = "staticVar3";
- FINAL_VAR4 = "final static var";
- }
- /**
- * 实例块
- */
- {
- System.out.println("2.实例块执行了。。。");
- var2 = "var2";
- }
-
-
复制代码 |