如public class test {public static int a;
static{ 
int a=1;
}public static void mian (String [] args){System.out.println(a);}
这样的结果a不会输出1;是0,怎么让它输出1???

解决方案 »

  1.   

    static{ 
        int a=1;
        }
    替换成
    static{ 
    a=1;
        }这样就可以了
      

  2.   

    如果变量不是static的呢?该怎么办?
      

  3.   

    哥,不是这样直接赋值就可以的啊,这个是简化的程序,真实的代码里面a=1里面就超级复杂的各种调用,而之前是用来初始化的一次。初始化了之后可以随意的调用多少次,例如a++;自增,如果在外面赋值的话,一直是a=1了。
      

  4.   

    就算不加static a的值不也是会变的吗
      

  5.   

    如果上面public static int a ;去掉static的话,就不是了,静态代码块里面就必须要重新定义a;我在其他的类里面要调用a,希望这个a=1,好像就有问题了。
      

  6.   

    class A{
    public static int a;
    static {
    a =1;
    }
    }
    class B{
    A newa =new A();
    System.out.println(A.a);
    }
    输出结果为静态代码块里面的a=1。
    代码不正确,但是这个是我要表达 的意思。正确的应该怎么写?
      

  7.   

    还是不对,
    public class fortest {
    public static int aa;
    static{ 
     aa=1;
    }
    public void getaa(){aa=0;
    }
    }public class testB {
    public static void main(String [] args){
    fortest fo =new fortest();
                    fo.getaa();
    System.out.println(fo.aa);
    }
    }
    得出的结果还是0;怎么修改让它变成1呢?