/*静态方法只可以调用静态变量*/
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);
}
}
}
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);
}
}
}
类名加静态成员名调用。。
{
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中引用是多层次的,这个要自己去理解,但是如果一个变量是静态的话,你就可以通过类名来访问!
this应该指向一个该 类新建的对象吧??this.i编译器会报错的。。
/*静态方法只可以调用静态变量*/
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);
}
}
}
为什么是错误的?其实我的标题就已经说清楚了“在只有一个类并且有局部变量覆盖成员变量的前提下如何在main方法中调用成员变量而不是调用局部变量?”只有一个类,显然,System.out.println(this.i)是不正确的,没有两个及以上的类怎么会用this super呢?this和super是针对类和子类的。呵呵,感谢各位了。尤其是上面两位提供正解的朋友,对java理解的很透