Java - polia
Základy informatiky - jazyk Java
Úvod do programovania v jazyku Java
- >Syntax jazyka Java
>Syntax jazyka Java - dátové typy, operátory
>Syntax jazyka Java - riadiace príkazy
>Syntax jazyka Java - základné triedy
>Java - polia
>Java - vstup a výstup údajov
Java - objektovo orientovaný prístup
Vzorové príklady:
Java - implementácia numerických algoritmov
Java - triedy geometrických tvarov
Pokročilé témy:
Vo fyzike (a samozrejme aj v inych odboroch) pracujeme často s usporiadanou postupnosťou hodnôt, napríklad časová postupnosť nameraných dát. V programovacích jazykoch je možné reprezentovať takúto postupnosť pomocou polí. Polia patria medzi základné dátové štruktúry, s niektorými ďaľšími sa obznámime neskôr. V jave môžene vytvárať polia ľubovolných dátových typov primitívnych aj objektových, môžeme vytvárať viacrozmerné polia ako aj polia polí. V jave na vytváranie polí použijeme operátor new v kombinácii s hranatými zátvorkami [].
int []a; // vytvorenie referencie na pole hodnot
...
a=new int[5]; // priradenie referencie polu hodnot
V prvom riadku vytvorime odkaz na (budúce) pole, referencia je štandardne inicializovaná hodnotou null. V daľšom riadku pomocou operátora new rezervujeme v pamäti potrebný priestor pre uloženie poľa, java sama podla dátového typu spočíta potrebnú veľkosť. Do hranatých zátvoriek uvedieme veľkosť poľa (= počet kusov). Celý postup môžeme zapísať aj v jednom riadku
int []a=new int[5];
Vytvorené prvky poľa sú inicializované štandardnou (default) hodnotou, v našom prípade 0. K prvkom poľa pri zápise alebo čítaní pristupujeme pomocou indexu v hranatých zátvorkách. Polia sú indexované od hodnoty 0 po hodnotu n-1, kde n je veľkosť poľa. Java kontroluje veľkosť indexu.
a[0]=123;
a[1]=a[0];
...
int index=8;
a[index]=345; // runtime error
Polia môžeme vytvoriť aj bez udania počtu elementov poľa priamo inicializáciu textovými konštantami (literálmi). Každé pole obsahuje atribút s hodnotou jeho dĺžky.
int []b= {3, 5, 8, 9, 1, 4};
boolean []y={true, false, false, true};
...
x=y.length; // dlzka pola
Pri vytváraní polí objektov postupujeme rovnako, rozdielom je len v tom, že výsledné pole musíme naplniť objektami tak povediac vo 'vlastnej réžii'.
Castica []m; // vytvorenie odkazu na pole
...
m = new Castica[3]; // vytvorenie pola 3x referencii na objekt triedy Castica
...
m[0]=new Castica(0.1,0.5,0.3) // naplnenie pola
m[1]=new Castica()
m[2]=new Castica()
Polia môžu byť aj viacrozmerné (môžu reprezentovať napr. obrazové dáta), pracujeme s nimi rovnako ako s jednorozmernými poliami
int [][]a = new int[2][3];
...
a[0][0]=1;
a[1][2]=234;
a[0][2]=a[1][1];
Počet rozmerov poľa nie je obmedzený, polia sa interne v jave ukladajú ako zgrupované jednorozmerné polia. Je možné potom vytvoriť polia, ktoré nemajú štandarnú 'štvorcovú' štruktúru (aj keď neviem,k čomu by to mohlo byť dobré)
int [][]c = { {0},
{1, 2},
{3, 4, 5} };
c[0]0]=100;
c[0][1]=101; // chyba
x=c[1].length; // vrati dlzku sub-pola