Ehm stai facendo una confusione pazzesca!!
Per inizializzazione intendo che tu non puoi andare ad assegnare un valore ai campi della matrice lettoLibero prima di averla fisicamente istanziata nel costruttore.
Questo è il costruttore che hai postato:
Questo codice causerà sicuramente un errore in esecuzione (NullPointerException) perché appunto non hai ancora istanziato lettoLibero con l'operatore new prima di assegnare i valori alle celle.Quindi prima del ciclo devi scrivere nel costruttore:codice:public Ostello() { //all inizio tutti i letti sono liberi for (int stanza=0; stanza<10; stanza++) { for (int letto=0; letto<5; letto++) { lettoLibero[stanza][letto] = false; } } }
Io mi riferisco al costruttore non al metodo checkin() !codice:lettoLibero=new boolean[10][5];
Nel metodo checkin(int stanza,int letto) quando un letto viene occupato si fa diventare false la corrispondente cella nella matrice, che prima deve quindi essere true (e infatti nel metodo prima si controlla che lettoLibero[stanza][letto] sia true).
Tu invece al momento della costruzione dell'Ostello metti tutti false nella matrice lettoLibero, quindi non sarà possibile occupare nessun letto!
Qui dentro fai un sacco errori, sia di logica sia di sintassi!
Intanto l'istruzione if va scritta con le parentesi, cioè if (condizione){// istruzioni}, poi nel testare il valore di una variabile dentro all'if non puoi usare l'operatore = (assegnazione) ma devi utilizzare l'operatore == , dopo quando controlli il valore di un booleano è sufficiente scrivere if(variabile) al posto di if(variabile==true), che è un'inutile ripetizione, e infine tu devi controllare che lettoLibero sia uguale a false se vuoi vedere se è occupato...
Poi nel ciclo non ha alcun senso utilizzare gli stessi indici nei due cicli annidati, ma davvero c'è una quantità industriale di errori lì dentro!
Prova intanto a ricontrollare tutta la parte relativa alla sintassi (quantomeno il programma deve compilare), poi penserai a come risolvere quel problema, ma per ora siamo messi malino...


Rispondi quotando