首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

一个超基础,但是不知道为啥

2011-12-21 
一个超基础,但是不知道为什么classTest{inti0publicstaticvoidmain(String[]args){inti2System.out.pr

一个超基础,但是不知道为什么
class   Test{

      int   i   =   0;  

      public   static   void   main(String[]   args){
int   i   =   2;
System.out.println(i);
      }
}

输出的局部变量i     而不是全局变量i     为什么?

[解决办法]
Java是这样规定的.
[解决办法]
被覆盖了了
使用的是最里面的变量
[解决办法]
Java遵循就近原则!!!
[解决办法]
局部变量隐藏了实例变量,而且实例变量必须通过对象引用来调用

例如:new Test().i;
或者
Test t = new Test();
t.i


[解决办法]
变量作用域的原因 java遵循小作用域大于大作用域的原则

会先输出局部变量 而不是成员变量 如果想输出成员变量用this.i
[解决办法]
如果局部变量的名字与成员变量的名字相同,则成员变量被隐藏,则这个成员变量在这个方法中暂时失效
[解决办法]
我怀疑你学过吗。》》》??????
[解决办法]
zhaoxinmao() ( ) 信誉:100 Blog

耐心,hehe

[解决办法]
补充一下子,你的程序里面main()是static方法是不能直接调用实例变量的
要用
new Test().i;
或者
Test t = new Test();
t.i
这样才能调用实力变量i

楼上这个是正解

[解决办法]
變量優先級得考慮進去,何況,你的所謂全局變量是一般的全局變量,根本不會讓MAIN内的變量受到影響,所以,使局部變量的結果。明白沒有!接分ING
[解决办法]
一个是方法的局部变量 一个类的实列变量```
STATIC 方法不能直接调用实列变量的!
[解决办法]
这还问为什么?规定而已
[解决办法]
晕,还不如用平实易懂的方式来解释,动辄“虚拟机运行本质”会吓死很多初学者
[解决办法]
我们老师说这个是近亲原则
[解决办法]
这个问题放到这里来问,唉,楼主基础的可以……
[解决办法]
访问类变量
class Test{

static int i = 0;

public static void main(String[] args){\
System.out.println(i);
int i = 2;
}
}
[解决办法]
访问类变量
class Test{

static int i = 0;

public static void main(String[] args){\
System.out.println(i);
int i = 2;
}
}

[解决办法]
耐心。。。要照顾新人,大家都是从新手开始的。。。
[解决办法]
我们要欢迎新人,而不是吓走新手,精神可佳,支持!
[解决办法]
是不是 this.i就能输出0了?

热点排行
Bad Request.