class Test{
public int i=1;
public static int j=2;
public void print(){
System.out.println(j);//不报错
}
public static void main(String[] args){
System.out.println(j);//不报错
System.out.println(i);//报错
}
}
初始化大乱斗
/**
* @ClassName TRRest
* @Description TODO
* @Author heaboy@heaboy.com
* @Version 1.0.0
*/
public class InitializeDemo {
private static int k = 1;
private static InitializeDemo t1 = new InitializeDemo("t1");
private static InitializeDemo t2 = new InitializeDemo("t2");
private static int i = print("i");
private static int n = 99;
{
print("初始化块");
j=100;
}
public InitializeDemo(String str) {
System.out.println((k++) + ":" + str + " i=" + i + " n=" + n);
++i;
++n;
}
static {
print("静态块");
n=100;
}
private int j = print("j");
public static int print(String str) {
System.out.println((k++) + ":" + str + " i=" + i + " n=" + n);
++n;
return ++i;
}
public static void main(String[] args) {
InitializeDemo test = new InitializeDemo("test");
}
}
static归类所有,只初始化一次,并且当类加载的时候才开始初始化修饰变量 所有该类的对象共享一个静态变量修饰方法 直接用类名调用即可静态方法只能调用静态变量class Test{ public int i=1; public static int j=2; public void print(){ System.out.println(j);//不报错 } public static void main(String[] args){ System.out.println(