Ehh problem z tablicą boolean

0

Witam,
mam taki kod i nie wiem dlaczego wywala mi indexofboundexeption ehhh :-(

 
public class CPN {
	
	int ilosc_dystrybutorow;
	boolean [] dystrybutor= new boolean[ilosc_dystrybutorow];
	
	
	public CPN (int ilosc_dystrybutorow)
	{
		this.ilosc_dystrybutorow=ilosc_dystrybutorow;
	}

	public synchronized void sprawdz_czy_wolny(int nr_pojazdu)
	{
		int i=0;
		System.out.println("Ilosc dystrybutoruw rowna sie"+ilosc_dystrybutorow);
		dystrybutor[0]=false; // tutaj mówi że coś jest nie tak
		//dystrybutor[3]=false;
		while(i<this.ilosc_dystrybutorow)
		{	
		//if(dystrybutor[i]==true)
		{
			System.out.println("Samochod numer pojezdza do tankowania do dystrybutora "+i); 
			i++;
		}
		}
		}
0

A gdzie ustawiasz wartość "int ilosc_dystrybutorow;" ?

0
        int ilosc_dystrybutorow;
//w tym miejscu ilosc_dystrybutorow==0, tworzysz 0-elementową tablicę
        boolean [] dystrybutor= new boolean[ilosc_dystrybutorow];
0

Ilość dystrybutorów jest w konstruktorze jak tworze obiekt klasy CPN w programie głównym to podaje ilość dystrybutorów. Tak w ogóle wyświetla mi mi w tym kawałku kodu ilość dystrybutorów poprawnie.

0

Nie, też wywala błąd :-(

0

Tablica o rozmiarze 0 już istnieje. zmiana wartości pola ilosc_dystrybutorow jest mocno spóźniona

public class CPN {
 
        int ilosc_dystrybutorow;
        boolean [] dystrybutor;
 
 
        public CPN (int ilosc_dystrybutorow)
        {
                this.ilosc_dystrybutorow=ilosc_dystrybutorow;
                dystrybutor = new boolean[ilosc_dystrybutorow];
        }
0

musiał byś tą tablicę wsadzić do funkcji CPN bo tak jak mówi kolega podanie parametru ilosc_dys... jest zdecydowanie za późno

1 użytkowników online, w tym zalogowanych: 0, gości: 1