Person[] lidi; lidi = new Person[5];
Note
|
Kromě pole v Javě existují i jiné objekty na ukládání více prvků, tzv. kontejnery, viz další přednášky. |
TypHodnoty[] jménoPole
[]
vždy hned za TypHodnoty
.
new
:
jménoPole = new TypHodnoty[ početprvků ];
Syntaxi přístupu k prvkům jménoPole[indexprvku] používáme pro:
jménoPole[indexprvku] = hodnota;
proměnná = jménoPole[indexprvku];
Person[] lidi; lidi = new Person[5];
Person[] lidi = new Person[5];
lidi[0] = new Person("Petr Nečas"); lidi[1] = new Person("Jana Nagyová"); lidi[0].writeInfo(); lidi[1].writeInfo();
lidi
naplněny první dva prvky odkazy na objekty.
null
.
public class Pokus { static String[] pole; public static void main(String args[]) { pole[0] = "Neco"; } }
Exception in thread "main" java.lang.NullPointerException at Pokus.main(Pokus.java:4)
public class Pokus { public static void main(String args[]) { String[] pole; pole[0] = "Neco"; } }
Pokus.java:4: variable pole might not have been initialized pole[0] = "Neco"; ^ 1 error
Person[] lidi; lidi = new Person[5]; lidi[0].writeInfo();
NullPointerException
, protože
pole existuje, má pět prvků, ale první z nich je prázdný,
nelze tudíž volat jeho metody (resp. vůbec používat jeho vlastnosti)!
Person[] lidi2; lidi2 = lidi1;
lidi2
je nyní odkaz na identické pole jako je v lidi1
.
System.arraycopy
, pak lidi2
obsahuje kopii (duplikát) původního pole.
Person[] lidi2 = new Person[5]; System.arraycopy(lidi, 0, lidi2, 0, lidi.length);
Note
|
Také |