重载方法时变量的范围

时间:2012-01-12 11:12:58

标签: java

例如,

class ClassOne{

int y = 3
int x = 2

void foo(){
--y;
}
void bar(){
y--;
}
void tesla(){
int y = 10;
}
}

据我了解,方法将以这种方式改变类变量:

  1. foo()对这两个变量都不会做任何事情
  2. bar()会将y var减少1,因此y=2
  3. tesla()将创建私有或受保护的变量y,只能在此tesla()方法中访问。
  4. 我不确定第三个,请评论,我明白了吗?

2 个答案:

答案 0 :(得分:3)

foobar都会将对象y变量减1,从而达到相同的效果。 tesla将为该方法创建一个局部变量y。您可能会收到警告。

答案 1 :(得分:0)

是的,没错。但是给一个与成员变量同名的局部变量是你永远不应该做的事情 - 它只会让你的代码太混乱。