Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pocetnicko pitanje

[es] :: Java :: Pocetnicko pitanje

[ Pregleda: 2613 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

flx

Član broj: 41193
Poruke: 56
..taman-bg.customer.sbb.co.yu.



+1 Profil

icon Pocetnicko pitanje06.11.2005. u 18:41 - pre 224 meseci
Interesuje me sledece:
-kada imam neki niz objekata neke klase koju sam napravio,nazovimo ga niz1,i sad napravim jos jedan niz objekata niz2,sta se desi kada uradim sledece niz1=niz2.
-i jos jedno pitanje,sta se desi kada uradim sledece niz1[n]=niz2[n].
Jel se ovde radi samo o promeni adresa ili se radi o nekom izjednacavanju objekata.


Hvala.
 
Odgovor na temu

Toxter
NS

Član broj: 39393
Poruke: 317
*.ftn.ns.ac.yu.



+6 Profil

icon Re: Pocetnicko pitanje06.11.2005. u 23:29 - pre 224 meseci
Samo se dodeli adresa.
Tj. niz1=niz2 tada niz1 dodeljujes referencu na niz2 (pocetka niza) i dalje sa niz1 radis isto kao kad bi radio sa niz2. Odnosno ovim nisi napravio kopiju niza.
U drugom slucaju: niz1[n]=niz2[n] ovde si dodelio referencu elementa niza
(u ovom slucaju n+1 elementa jer su indeksi "zero-based" tj. indeks prvog elementa je 0,
indeks drugog 1, ...). Znaci ni ovde nisi napravio kopiju (ili kako se to cesto kaze duboku
kopiju) vec si samo dodelio adresu na koju pokazuje element iz drugog niza.

Ako zelis da napravis kopiju niza moras to odraditi rucno,
ili da iskoristis System.arraycopy() sto je najbrzi nacin za kopiranje nizova.

Pozdrav!
Sad mu nije nista, ubio si ga k'o zeca...
 
Odgovor na temu

flx

Član broj: 41193
Poruke: 56
..taman-bg.customer.sbb.co.yu.



+1 Profil

icon Re: Pocetnicko pitanje06.11.2005. u 23:43 - pre 224 meseci
Jel bi mogao ako ti nije problem samo da mi napises neki kratak primer kako se to radi rucno.

Hvala ti puno.
 
Odgovor na temu

Toxter
NS

Član broj: 39393
Poruke: 317
*.ftn.ns.ac.yu.



+6 Profil

icon Re: Pocetnicko pitanje07.11.2005. u 00:15 - pre 224 meseci
Citat:
flx: Jel bi mogao ako ti nije problem samo da mi napises neki kratak primer kako se to radi rucno.


Ovako:
Ako imas klasu koja se zove Net i koja ima atribute String adresa i int port. I neka su ti
atributi public (zbog jednostavnosti demonstracije).
Neka postoji konstruktor: Net(String adresa, int port):
Code:
public class Net{
  public String adresa;
  public int port;
  
  public Net(String adresa, int port){
     this.adresa = new String(adresa);
     this.port = port;
  }
}


Ako zelis da iskopiras niz1 u niz2 koji sadrzi objekte tipa Net:

Code:

Net[] niz2 = new Net[niz1.length]; //definisemo niz koji ima isti broj elemenata
for(int i=0; i<niz1.length; i++){//prolazimo kroz length elemenata, tj. kroz sve elemente pocetnog niza
  Net deepCopy = new Net(niz1[i].adresa, niz1[i].port); //pravimo duboku kopiju
  niz1[i] = deepCopy;
}



Pozdrav!
Sad mu nije nista, ubio si ga k'o zeca...
 
Odgovor na temu

[es] :: Java :: Pocetnicko pitanje

[ Pregleda: 2613 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.