Java计数器出现短缺
我的柜台坏了。该方法接受要添加到停车场阵列中的汽车。停车场最多只能容纳10辆车,但当我运行程序时,它最多只能容纳5辆车,即使我将10辆设置为阵列的大小Java计数器出现短缺,java,arrays,methods,counter,increment,Java,Arrays,Methods,Counter,Increment,我的柜台坏了。该方法接受要添加到停车场阵列中的汽车。停车场最多只能容纳10辆车,但当我运行程序时,它最多只能容纳5辆车,即使我将10辆设置为阵列的大小 //instance variables. private Car automobiles[]; //Array List of Cars private int counter = 0; //counter to keep track of cars in garage. private Car toyota; // ca
//instance variables.
private Car automobiles[]; //Array List of Cars
private int counter = 0; //counter to keep track of cars in garage.
private Car toyota; // car object
private static final int SIZE = 10;
public String arrive(Car next)
{
toyota = next;
if (counter < SIZE) // checks to make sure the garage is not full
{
automobiles[counter] = toyota; //parks new car into garage
counter++;
return "" + toyota.getlicenseNumber() + " has been parked.\n";
}
else // else statement if garage is full
{
return "Sorry, " + toyota.getlicenseNumber()
+ " cannot be parked. The Parking lot is Full!!";
}
}
您已将大小
设置为静态/类变量
和
private int counter = 0;
计数器
作为实例变量
因此,即使您希望在一个车库实例中最多有10辆车,因为您将大小声明为静态,您也可以在所有车库实例中最多有10辆车。因此,如果您以前的实例有5辆车,那么只允许再多5辆。您可能希望将SIZE设置为实例变量
private final int SIZE = 10;
是螺纹的吗?汽车被移走了吗?你能提供一个完全可运行的例子来演示你的问题吗?看起来你的代码中被破坏的部分不包括在内。你在哪里循环浏览数据?这只运行一次,不会产生该输出。请检查计数器变量的所有引用/使用,因为上面的代码看起来没有问题。也许其他地方的计数器正在增加?嘿,非常感谢所有的回复,这实际上是我的主方法的一个问题,我两次调用这个到达方法。一个是将结果打印到屏幕上,另一个是将结果打印到文本文件中,这导致计数器递增。:)我看不出这有什么区别。他对大小的值不做任何处理,只是用它来代替键入10。实例或类变量从外观上看没有任何变化。因为他在代码中提到实例变量作为注释,所以我假设代码属于
车库类
。下一个大小定义为static
,arrival()
是OP将计数器与大小进行比较的实例方法。因此,不管车库的情况如何,他只能拥有10辆车。因此,如果前面有车库实例,其中汽车已经到达,那么当前实例的最大大小可以是数量辆汽车。我仍然不知道'if(counter如果(0<10)
与其他车库中的汽车数量没有关联。如果counter是类变量,那么你所说的就有意义了。我明白你的意思。或者,如果他正在缩小尺寸,但即使这样也不可能,因为他已经宣布这是最终结果。
private int counter = 0;
private final int SIZE = 10;