2014-02-07 2 views
0

카운터가 제대로 작동하지 않습니다. 이 방법은 주차 차고 배열에 추가 할 차량을 수용합니다. 주차 공간은 최대 10 대의 차량을 수용 할 수 있지만, 프로그램을 실행하면 어레이의 크기가 10 세트인데도 최대 5 대의 차량 만 허용합니다.자바 카운터가 짧게 올라갑니다.

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

    } 

다음은 instance variableSIZE static/Class variable로하고

private int counter = 0; 

counter을 한

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!! 
+0

스레드가 있습니까? 자동차가 제거 되었습니까? 문제를 보여주는 완전히 실행 가능한 예제를 제공 할 수 있습니까? – MadProgrammer

+2

깨진 코드 부분이 포함되어 있지 않은 것 같습니다. 데이터를 어디에서 반복하고 있습니까? 이것은 한 번만 실행되며 출력을 생성하지 않습니다. – leigero

+0

위의 코드가 정상으로 보였으므로 카운터 변수의 모든 참조/용도를 확인하십시오. 어쩌면 카운터가 다른 곳에서 증가하고 있습니까? – mikemil

답변

2
private static final int SIZE = 10; 

MY 출력됩니다.

정적 인 SIZE 신고로 인해 하나의 차고 인스턴스에 최대 10 대의 자동차를 원한다고해도 모든 차고 인스턴스에서 최대 10 대의 자동차를 보유 할 수 있습니다. 따라서 이전 인스턴스에 5 대의 자동차가있는 경우 5 개의 자동차 만 허용됩니다. SIZE를 인스턴스 변수로 만들 수 있습니다.

private final int SIZE = 10; 
+0

이것이 어떤 차이가 있는지 나는 알지 못합니다. 그는 SIZE 값을 입력하는 대신 그것을 사용하는 것을 부끄러워하지 않습니다. 인스턴스 또는 클래스 변수는 그 모양에서 아무 것도 변경하지 않습니다. – leigero

+0

그는 인스턴스 변수를 코드에서 주석으로 언급 했으므로 코드가 'Garage class'에 속한다고 가정합니다. 다음 SIZE는 static으로 정의되고 arrive()는 OP가 SIZE와 카운터를 비교하는 인스턴스 메소드입니다. 따라서 그는 차고 인스턴스와 관계없이 10 대의 자동차 만 가질 수 있습니다. 따라서 차가 이미 도착한 차고 인스턴스가있는 경우 현재 인스턴스는 최대 'SIZE-thatNumber'대를 가질 수 있습니다. –

+0

'if (counter leigero

관련 문제