我是初学者,我对构建对象有疑问。
我不明白在这种情况下如何创建具有相同变量名“oneCar”的两个对象:
for (int i = 0; i<2 ; ++i)
{
Car oneCar = new Car();
}
它将创建两个具有两个不同引用的对象“oneCar”。
但如果我这样做:
Car oneCar = new Car();
Car oneCar = new Car();
这会告诉我有一个重复的变量。
答案 0 :(得分:4)
除了几个例外,Java中的局部变量的范围限定为最近的大括号。这意味着,就编译器而言,退出大括号后变量不再存在。第一次迭代时声明的变量oneCar
在到达第二次迭代时不存在。它等同于写作:
{
Car oneCar = new Car();
}
{
Car oneCar = new Car();
}
这是完全合法的。
答案 1 :(得分:1)
是的,因为您要声明两次具有相同名称的相同变量。我想你可以解决你的问题,创建一个Carand数组,然后在for语句中为每个数组字段使用构造函数。
Car cars[10];
for(int i=0;i<9;i++){
cars[i]= new Car();
}