[ c00l_daem0n @ 25.02.2003. 19:51 ] @
Posto sam relativno nov sto se java programiranja tice zanima me kako napisati jednostavnu f-ju kojoj se prosledjuju argumenti po referenci.
U c/c++ bi najjednostavniji primer bio f-ja swap koja prima dva argumenta
void swap(int*a,int*b)
{
int tmp;
tmp=*a;
*a=*b;
*b=tmp;
}

Hvala.

[ Dragi Tata @ 25.02.2003. 20:12 ] @
Neće moći, bojim se. U Javi se svi argumenti prosleđuju po vrednosti. Možeš da koristiš wrapper objekat tipa java.lang.Integer

http://java.sun.com/j2se/1.4/docs/api/java/lang/Integer.html
[ dejankr @ 26.02.2003. 07:22 ] @
Ako prosledjujes reference na objekte onda je stvar jednostavna:
void swap(Object a, Object b)
{
Object tmp;
tmp=a;
a=b;
b=tmp;
}

Sa primitivnim vrednostima ovo ne ide jer ne mozes praviti reference na njih.
[ c00l_daem0n @ 26.02.2003. 15:14 ] @
Kao sto sam i pretpostavio, ipak treba koristiti objekte koji predstavljaju odredjen tip podataka.

Hvala na odgovorima.
[ c00l_daem0n @ 26.02.2003. 20:07 ] @
Citat:
dejankr:
Ako prosledjujes reference na objekte onda je stvar jednostavna:
void swap(Object a, Object b)
{
Object tmp;
tmp=a;
a=b;
b=tmp;
}

Sa primitivnim vrednostima ovo ne ide jer ne mozes praviti reference na njih.


Samo jos jedno,
Java prenosi reference objekata po vrednosti tako da ovaj kod ne bi smeo da ih zameni, odnosno to ce vaziti samo u lokalu te f-je.
Ispravite me ako gresim.
[ Dragi Tata @ 26.02.2003. 20:23 ] @
U pravu si. Nema swap-ovanja u Javi.

http://www.javaworld.com/javaw...a/2000-05/03-qa-0526-pass.html
[ dejankr @ 27.02.2003. 10:36 ] @
Citat:

Samo jos jedno,
Java prenosi reference objekata po vrednosti tako da ovaj kod ne bi smeo da ih zameni, odnosno to ce vaziti samo u lokalu te f-je.
Ispravite me ako gresim.


U pravu si! Moja greska!

Dejan