Array av objekt
En arrayx
med 10 st element som är av den primitiva typen int
deklareras så här.
Arrayen består 10 st element,
int [] x = new int[10];
x[0]
, x[1]
, ...,x[9]
och alla element får värdet noll (0).
På ett liknade sätt kan vi deklarera arrayer av objekt.
Antag att det finns en klass Person
, där en person består av ett namn, adress och en ålder.
Vi kan då deklarera en variabel som är en array av Person
så här:
Arrayen får 10 element, där varje element är av typen
Person [] personReg = new Person[10];
Person
.
Index i arrayen är 0-9. Det första elementet är personReg[0]
och det sista är personReg[9]
. Alla element får värdet null
och förklaringen till detta är att vi inte har skapat något Person
-objekt. Att det blir just null
har att göra med att elementen är referenser till objekt och i med att vi inte har skapat Person
-objekt, vilket görs med new Person(...);
, så får dessa referenser värdet null
för att tydligöra att det f.n. INTE refererar till något Person
-objekt.
Om vi skriver ut arrayens element så här:
kommer resultatet att bli:
for (int i=0; i<10; i++) { System.out.println(i + ":" + personReg[i]); }
0:null 1:null 2:null 3:null 4:null 5:null 6:null 7:null 8:null 9:null
För att initiera elementen i arrayen kan vi göra så här:
En utskrift ger nu följande resultat:
// Initiera elementet med index 0 (noll) genom att // anropa konstruktorn med tre parametrar i klassen Person personReg[0] = new Person( "Kim", "Kungsgatan 14", 22); // Initiera elementen med index 1..9 genom att anropa // konstruktorna utan parametrar for (int i=1; i<10; i++) { personReg[i] = new Person(); }
0:Name=Kim, Address=Kungsgatan 14, Age=22 1:Name=NoName, Address=null, Age=0 2:Name=NoName, Address=null, Age=0 3:Name=NoName, Address=null, Age=0 4:Name=NoName, Address=null, Age=0 5:Name=NoName, Address=null, Age=0 6:Name=NoName, Address=null, Age=0 7:Name=NoName, Address=null, Age=0 8:Name=NoName, Address=null, Age=0 9:Name=NoName, Address=null, Age=0