静态方法内不能包含非静态变量,你的this是指当前的类对象,不是静态的,
{.....
  static int x;
  static void setX(int x){
  类名.x=x;
}
.....}
应该没问题吧!

解决方案 »

  1.   

    rinehart(rinehart) 说得对
    this 与静态势不两立
      

  2.   

    this 决不能在静态方法内使用,main中就决不能用this
      

  3.   

    概念问题很重要,好好搞清楚静态static是怎么回事吧。
      

  4.   

    main也是静态方法,为什么可以在其中调用其他的非静态方法呢?
      

  5.   

    谁告诉你main中可以调用非静态方法?要想在静态方法中调用一个非静态方法,首先必须先要生成拥有该方法的类的实例,比如:
    class A
    {
    public a(){}static void main()
    {
        this.(); //非法,不能在静态方法中调用非静态方法。
        A aaa = new A();
        aaa.a(); //合法,因为已经有了一个A的实例。这就是你所谓的在main中调用非静态方法吧?
    }还是那句话,好好搞清楚静态是怎么回事比较好。