为什么访问静态方法和静态变量不需要实例化?

来源:百度知道 编辑:UC知道 时间:2024/05/14 13:31:43
public void correctmethod(){
int x=1;
int y=1;
for(int i=1;i<10;i++){
x+=i;
}
for(int i=1;i<10;i++){
y+=i;
}
}
在一个方法互不嵌套的块中,可以用同名多次声明局部变量,但是不能在嵌套块中声明两次。因此上面的代码是正确的。
然而
public void correctmethod(){
int x=1;
int y=1;
for(int i=1;i<10;i++){
int x=0;
x+=i;
}
for(int i=1;i<10;i++){
y+=i;
}
}
却有错误?

访问静态方法和静态变量,直接使用[类名].成员名,应该把静态成员考虑在类这一层次上,至于程序员为什么这样设计我就不得而知了。
你上面的程序涉及的应该是变量作用域的问题,首先你在correctmethod函数里面声明了两个变量x,y然后你在FOR循环中又再次声明int x,导致编译器无法确认使用哪个x,这样肯定有错。