java中"Static块"是怎么回事,怎么用的,有什么意义
6.Static块
Static块:该类的任何方法被首次触碰到时(马克-to-win: when you touch Test的main方法时),Static块被运行。可以在里面初始化你的static变量,不能访问实例变量。在所有静态变量初始化之后运行,见例子。
马克- to-win:马克 java社区:防盗版实名手机尾号: 73203。
本章源码
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();
}
}
结果:
Static block initialized.
a = 9
b = 36
in main
x = 42
a = 9
b = 36
Static block Test1 initialized.
Assignment: 3) bawei, static block {registration, pay tuition,} normal program is "start studying."