Le compteur Java est à venir


Mon compteur ne fonctionne pas correctement. La méthode accepte une voiture à ajouter dans le tableau de garage de stationnement. Le garage de stationnement ne peut contenir que jusqu'à 10 voitures, mais lorsque j'exécute mon programme, il ne permet que jusqu'à 5 voitures, même si j'ai 10 définis comme TAILLE du tableau.

    //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!!";
      }

  }

VOICI MA SORTIE

    JAV001 has been parked.

    JAV002 has been parked.

    JAV003 has been parked.

    JAV004 has been parked.

    JAV005 has been parked.

    Sorry, JAV006 cannot be parked. The Parking lot is Full!!
    Sorry, JAV007 cannot be parked. The Parking lot is Full!!
    Sorry, JAV008 cannot be parked. The Parking lot is Full!!
    Sorry, JAV009 cannot be parked. The Parking lot is Full!!
    Sorry, JAV0010 cannot be parked. The Parking lot is Full!!
Author: JK2456, 2014-02-07

1 answers

private static final int SIZE = 10;

Vous avez fait le SIZE, comme static/Class variable et

private int counter = 0;

counter comme instance variable.

Donc, même si vous voulez un maximum de 10 voitures dans une instance de garage en raison de votre déclaration de TAILLE comme statique, vous pouvez avoir un maximum de 10 voitures dans toutes vos instances de garage. Donc, si vos instances précédentes ont 5 voitures, cela ne permettra que 5 de plus. Vous voudrez peut-être faire de SIZE une variable d'instance.

private final int SIZE = 10;
 2
Author: Aniket Thakur, 2014-02-07 05:02:17