我想请问在这个程序中:
    public class Static{
         static{
             int x=5;
                }
         static x,y;
            public static void main(String argc[]){
                     x--;
                     myMethod();
                     System.out.printf(x + y + ++x);
                     static void myMethod(){
                         y = x++ + ++x;
                                            }
                                                   }
                        }            在static{
                  int x;
                    }
              中的初始化为什么对程序没有影响?

解决方案 »

  1.   

    static x,y;//错误,y为定义
    myMethod()的定义应放在main()外
    如果是static int x,y;相当于x=0;而tatic{int x=5;}不起作用。可改为static int i=5,y;
    这样结果就是23,而不是3
      

  2.   

    代码有处笔误static int x,y;改过后编译可以通过.问题是没弄清static{}这个结构的作用
    wettoliu()说的正是重点,现在小弟已经明白了.谢谢. 
    devie(潇潇夜雨)也批评得极是,小弟在学习中一定注意结构和书写的问题.
      

  3.   

    static {int x=5;}应该是程序最开始运行的地方,,一启动主函数就先运行static{}