java中"Static块"是怎么回事,怎么用的,有什么意义
6.Static块
Static块:该类的任何方法被首次触碰到时(马克-to-win: when you touch Test的main方法时),Static块被运行。可以在里面初始化你的static变量,不能访问实例变量。在所有静态变量初始化之后运行,见例子。
class Test1{
static {
System.out.println("Static block Test1 initialized.");
}
}
public class Test {
/*下面两句话是在静态块儿之前执行,所以它的值,被静态块儿里面赋的值所覆盖掉。马克-to-win, the following two statements are before the execution of the static block.*/
static int a = 3;
static int b;
int c;
static void cal(int x) {
System.out.println("x = " + x);
System.out.println("a = " + a);
System.out.println("b = " + b);
}
// 静态块儿Static block
static {
// c=9; 是错误的,will cause an error.
System.out.println("Static block initialized.");
a = 9;
b = a * 4;
System.out.println("a = " + a);
System.out.println("b = " + b); }
public static void main(String args[]) {
System.out.println("in main");
/* main and cal 都是静态块儿,所以可以这样调用,here main and cal is on the same class and same level, so can use in this way.*/
cal(42);
new Test1();
}
}
更多内容请见原文,文章转载自:https://blog.csdn.net/qq_44639795/article/details/103129472