本帖最后由 Leo_yeung 于 2013-10-15 00:36 编辑
- class Demo{
- public static int fun(String s){
- System.out.println("i="+i+",s="+s);
- i++;
- return i;
- }
- static {
- System.out.println(Demo.i);
- fun("static code");
- System.out.println(Demo.i);
- fun("static code");
- }
- public static int i=10;
- }
- class A{
- public static void main(String[] args){
- new Demo();
-
- }
- }
复制代码 谁能帮我分析一下,静态代码块,静态成员变量,静态成员函数的加载顺序和执行顺序?
还有一点,就是以上代码中,如若将静态代码块中调用静态成员变量的类名去掉,就会报错,即- System.out.println(Demo.i);
复制代码 编译报错:非法前向引用!不解?为什么方法前没有指定类名调用就不会报错呢?同样是成员变量i的位置在最后?
|