Visualizzazione stampabile
-
Spiegazione codice
Sempre preso dal libro del Dott. Carli :
qualcuno di buon cuore che mi spieghi rigo per rigo che significa ? :-[
Per far capire che non sono svogliato vi dico cosa ho capito io...
Perchè qui vedo instanziata una classe che si chiama CustomItem che dichiara 2 variabili fistname e lastname come stringe.
Poi vedo un metodo "createItems" che fa ritornare un'array che si chiama come la classe cui sopra Customitem (e già non capisco il motivo)....
comunque, andando avanti, con questo codice :
capisco che viene creato un array che si chiama items di grandezza 20 (giusto?)
andando ancora avanti vedo che parte un ciclo for con i che assume dei valori che partono da 0 ed arrivanno fino alla lunghezza dell'array ossia 20 (questa forse è l'unica cosa che mi è chiara roftl)
questo poi è un altro punto che non capisco proprio :
si inserisce in items[0],items[1]..items[20] cosa ? la dichiarazione di 2 variabili public String firstname e public String lastname ??
e poi mi spiegate anche queste righe ?? :
Grazie :-[:-[
-
Trattasi di bieco generatore di dati di prova, perché le entry da infilare nei test non sono mai abbastanza :cool:
CustomItem è un oggetto composto solo di due attributi, nome e cognome.
Personalmente avrei creato la createItems static (oltre a creare le set e le get per gli attributi, perché se tocchi troppo gli attributi diventi cieco :O)
In ogni caso, una volta invocata la createItems il risultato è un listone di 20 persone dummy che hanno nome "Firstname5 Lastname_5" (per esempio)
-
Ma praticamente ocn questa riga di codice
items[i] = new CustomItem();
che faccio ? istanzio in item[0]..1..2..20 sia la var cognome che nome ?? non capisco...
e poi se ItemCustom è una classe come fa poi a diventare un array in createItem nella riga CustomItem[] items = new CustomItem[20]; qualcosa mi sfugge...
-
Quote:
Originariamente inviato da
mimmog
Ma praticamente ocn questa riga di codice
items[i] = new CustomItem();
che faccio ? istanzio in item[0]..1..2..20 sia la var cognome che nome ?? non capisco...
e poi se ItemCustom è una classe come fa poi a diventare un array in createItem nella riga CustomItem[] items = new CustomItem[20]; qualcosa mi sfugge...
Aspetta un momento, perché l'indentazione mi ha tratto un po' in inganno.
La definizione completa di CustomItem è:
Quindi parliamo di un oggetti che ha due attributi firstname e lastname
Il secondo pezzo di codice usa la classe sopra definita, ma non devi considerarla compresa in essa.
Il metodo (implementato evidentemente in un'altra classe, NON CustomItem)
Crea un array di CustomItem (quindi un gruppo di oggetti ognuno con un suo firstname e lastname) e dopo assegna a ognuno valori dummy.
Forse ti trae in inganno il costruttore di array. In realtà i due new hanno un senso molto diverso:
dice solo al sistema "fai spazio abbastanza per 20 elementi di tipo CustomItem". Ma in realtà a questo punto l'elemento items[x] è solo uno spazio non inizializzato di memoria (quindi secondo alcune religioni, una porta verso gli inferi o_O).
Quando poi però si agisce con
Allora si viene fabbricato un elemento di tipo CustomItem e inserito in memoria nella posizione i dell'array sopra creato.
-
Ah ok ! ora ho capito ! grazie!! ;)