Array av objekt

En array x med 10 st element som är av den primitiva typen int deklareras så här.
 
  int [] x = new int[10];
 
Arrayen består 10 st element, 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:

  
  Person [] personReg = new Person[10];

Arrayen får 10 element, där varje element är av typen 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:


  for (int i=0; i<10; i++) {
     System.out.println(i + ":" + personReg[i]); 
  }

kommer resultatet att bli:
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:


  // 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(); 
  }

En utskrift ger nu följande resultat:
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