Java计数器出现短缺

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

我的柜台坏了。该方法接受要添加到停车场阵列中的汽车。停车场最多只能容纳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;    // 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;