代码如下
/**
* Static变量
*
* @auther sunyong
* @version 1.0 Jul 27, 2012
*
*/
public class StaticClass {
static int a = 5; // 首先,a被设置为5,
static int b;
public static void systemOut(int x) {// 最后,3个println()
// 语句引用两个static变量a和b,以及局部变量x 。
System.out.println("x=" + x);
System.out.println("a=" + a);
System.out.println("b=" + b);
}
static { // 其次,static 块执行(打印一条消息),b被初始化为a*2 或10。
System.out.println("Static block initialized.");
b = a * 2;
System.out.println("b=" + b);
}
public static void main(String[] args) {// 然后,调用main(),main()
// 调用systemOut(),把值20传递给x。
systemOut(20);
TestStatic.callme();
System.out.println("b = " + TestStatic.b);
}
}
// 一个static变量可以以同样的格式来访问——类名加点号运算符。这就是Java 如何实现全局功能和全局变量的一个控制版本。
//最好2行是一个例子。在main() 中,static方法callme() 和static 变量b在它们的类之外被访问。
/**
* Static方法
*
* @auther sunyong
* @version 1.0 Jul 27, 2012
*
*/
class TestStatic {
static int a = 42;
static int b = 99;
static void callme() {
System.out.println("a = " + a);
}
}