[ maxmagnus2 @ 29.06.2007. 00:46 ] @
Poz,
kako se deklarise niz klase

pr za int:
int niz_int [] int = new int [100];

Sta ako imam npr klasu moja_klasa
sa konstruktorom moja_klasa()
kako onda ide njen niz

!!!!pogresno!!!!! ali zarad lakseg objasnjenja mog pitanja
moja_klasa [] MK = new moja_klasa() [100];

Hvala unapred
MM
[ Au197/79 @ 29.06.2007. 08:18 ] @
Kod niza imaš deklarisanje niza, instanciranje niza i popunjavanje niza. To su 3 različite stvari koje mogu da se spajaju pa u jednoj liniji možeš uraditi jednu od njih, više njih ili sve 3.

U liniji:
Code:
MojaKlasa[] mojaKlasaNiz = new MojaKlasa[10];

se deklariše promenljiva čiji je tip "referenca na niz objekata klase MojaKlasa" a ime je mojaKlasaNiz. To je ona prva stvar a u kodu je iskazano u prvom delu izraza dodele. Posle znaka dodele je 2. stvar tj. instanciranje niza. Niz je u javi objekat zato se koristi operator new, niz takođe ima fiksnu veličinu koja se pri instanciranju zadaje.

Ovaj kod je isti kao onaj što si dao za u primeru za niz int-ova. Tj. niz se isto pravi bez obzira da li je niz primitivnih tipova ili niz objekata.

Ostala je samo 3. stvar a to je da se niz popuni. Možeš svaki element posebno, možeš petljom... Element dodeliš isto i u slučaju da je element objekat i u slučaju da nije. Samo je razlika što kad praviš objekat pozivaš konstruktor. Ali to nema veze sa nizom.

Code:
MojaKlasa mk = new MojaKlasa();
mojaKlasaNiz[0] = mk;

Mogao si ove 2 linije spojiti u jednu pa da ti ne treba promenljiva mk.

Sve ove 3 stvari možeš spojiti u jednu preko izraza:
Code:
MojaKlasa[] mojaKlasaNiz = {new MojaKlasa(), new MojaKlasa(), new MojaKlasa()};


I uzmi neku bolju knjigu iz jave, tamo je ovo lepo objašnjeno.

[Ovu poruku je menjao Au197/79 dana 29.06.2007. u 09:32 GMT+1]