V I S U A L I Z Z A D I S C U S S I O N E |
occhidigatto |
Inserito il - 21/01/2010 : 01:01:46 ciaooo a tutti! sto studiando le liste con cursori ma non ho ben capito cosa fa questo blocco static presente sulle slide
static{ int i; for(i=1;i<spazio.length-1;i++) spazio[i] = (new CursorList()).new Cella(null,new Cursore(i+1)); spazio[i] = (new CursorList()).new Cella(null,null); }
in particolare l'istruzione in grassetto non capisco cosa faccia né perchè viene usata quella particolare sintassi. Help!
odg |
3 U L T I M E R I S P O S T E (in alto le più recenti) |
cicci89 |
Inserito il - 29/01/2010 : 21:50:18 spazio[i] = (new CursorList()).new Cella(null,new Cursore(i+1));
usa questa sintassi perchè cella è una classe interna, e non può esistere se non esiste un oggetto della classe ospitante, perciò viene creato una nuova CursorList e su questa viene creato l'oggetto cella... siccome è un'inizializzazione viene impostata a null, e ogni cella ha un cursore che punta a quello successivo... l'ultima cella viene inizializzata a null,null perchè non contiene ancora nulla e non ha un elemento successivo.. |
nicolamonaca |
Inserito il - 22/01/2010 : 19:22:43 @ GiangITPS:
Scusa dov' è l' errore di chiusura della graffa? C' è un blocco static aperto e poi chiuso con un' istruzione for senza parentesi perchè contiene una sola istruzione...comunque il senso è quello che hai detto tu.. |
GiangITPS |
Inserito il - 21/01/2010 : 11:13:31 Hai sicuramente sbagliato a chiudere il blocco for... così sicuramente non ha senso perchè nella stessa posizione dell'array crea prima una cella con il cursore che punta alla successiva e poi una "vuota". Se invece sposti la graffa subito dopo il rigo in grassetto allora crea una lista vuota in cui ogni elemento punta al successivo e l'ultimo ovviamente a null.
Non so perchè la sintassi ti sembra "particolare", forse per il new dopo il punto? da quanto ricordo Cella è una classe interna e quindi per istanziarne un oggetto bisogna creare prima uno di tipo CursorList (a cui in questo particolare caso non serve dare un nome). Spero di essere stato di aiuto... |