我不明白为什么会这样,我希望有人可以向我解释。 这是一个例子:
TestObject array[] = new TestObject[10];
for(int i= 0; i <= 10; i++){
TestObject object = new TestObject();
object.setValue(i);
array[i] = object;
System.out.println(array[i].getObject());
}
为什么我可以创建&#34; TestObject&#34;的多个实例。在循环中具有相同的名称? 通常,您无法创建具有相同名称的实例:
TestObject o = new TestObject(1);
TestObject o = new TestObject(2);
嗯,这显然会引发错误......
答案 0 :(得分:3)
for
循环的范围仅限于迭代。因此,TestObject object
在每次迭代中都会被创建和销毁。
答案 1 :(得分:2)
循环的每次迭代都是一个块,并且作为一个块,它有自己的范围。这样做可以达到相同的效果:
{
int i = 0;
}
{
int i = 1;
}
// etc
答案 2 :(得分:0)
这是因为'object'处于当前循环迭代的可见范围内,因此对于下一次迭代,可以初始化一个具有相同名称的新对象(其他范围)。
答案 3 :(得分:0)
这是对象问题的范围。每次迭代都有它的范围,假设它们根本不是同一个对象