/*静态方法只可以调用静态变量*/
public class TestVar
{
 static int i=3;//成员变量,我想在main方法中调用它,但它会被main方法中定义的int i=0覆盖掉
static int j=0;
static long a=888888L;public void m()
{int i=5;
System.out.println(i);
}public static void main(String args[])
{
int i=0;//覆盖掉成员变量i
System.out.println(i);
System.out.println(j);
//注意请在此插入语句调用成员变量中的i,并将其打印出来,要求不再增加新类 TestVar tv=new TestVar();//创建实例
tv.m();//调用实例的一个方法
System.out.println(a);
boolean b=true;
if(b)
{
System.out.println("b is true");

System.out.println(b);
}
}
}

解决方案 »

  1.   

    System.out.println(TestVar.i);
    类名加静态成员名调用。。
      

  2.   

    public class TestVar 

    static int i=3;//成员变量,我想在main方法中调用它,但它会被main方法中定义的int i=0覆盖掉 
    static int j=0; 
    static long a=888888L; public void m() 
    {int i=5; 
    System.out.println(i); 
    } public static void main(String args[]) 

    int i=0;//覆盖掉成员变量i 
    System.out.println(i); 
    System.out.println(j); 
    //注意请在此插入语句调用成员变量中的i,并将其打印出来,要求不再增加新类 
    System.our.println(this.i);TestVar tv=new TestVar();//创建实例 
    tv.m();//调用实例的一个方法 
    System.out.println(a); 
    boolean b=true; 
    if(b) 

    System.out.println("b is true"); System.out.println(b); 


    }
    楼主,是这样的,当你要用到一个静态的成员变量时,就这样引用就行了,在java中引用是多层次的,这个要自己去理解,但是如果一个变量是静态的话,你就可以通过类名来访问!
      

  3.   


    this应该指向一个该 类新建的对象吧??this.i编译器会报错的。。
      

  4.   


    /*静态方法只可以调用静态变量*/ 
    public class TestVar 

    static int i=3;//成员变量,我想在main方法中调用它,但它会被main方法中定义的int i=0覆盖掉 
    static int j=0; 
    static long a=888888L; public void m() 
    {int i=5; 
    System.out.println(i); 
    } public static void main(String args[]) 

    int i=0;//覆盖掉成员变量i 
    System.out.println(i); 
    System.out.println(j); 
    //注意请在此插入语句调用成员变量中的i,并将其打印出来,要求不再增加新类 
    System.out.println(TestVar.i);TestVar tv=new TestVar();//创建实例 
    tv.m();//调用实例的一个方法 
    System.out.println(a); 
    boolean b=true; 
    if(b) 

    System.out.println("b is true"); System.out.println(b); 


    }
      

  5.   

    o(∩_∩)o... ,谢谢大家的参与,由于本人刚登陆此论坛,没有任何的积分,不能给大家奖励分,大家还如此热情的回复,在此我表示感谢。1楼和4楼的回答非常的正确,而2楼的朋友做法是错误的,不过还是要感谢你的参与,
    为什么是错误的?其实我的标题就已经说清楚了“在只有一个类并且有局部变量覆盖成员变量的前提下如何在main方法中调用成员变量而不是调用局部变量?”只有一个类,显然,System.out.println(this.i)是不正确的,没有两个及以上的类怎么会用this super呢?this和super是针对类和子类的。呵呵,感谢各位了。尤其是上面两位提供正解的朋友,对java理解的很透