@mucky
To sto si ti rekao jeste po zvanocnom ispravnom rezonovanju citanja specifikacije Java jezika i njene tacke 8.x.x., koja govori da kompajler treba da iskopira vrednost reference u memoriji.
Ako si ti proizvodjac Java kompajlera e onda to jeste merodavan dokumenat za tebe, ali ovde se radi o koriscenju java kompajlera, teoriji komapajlera i teoriji programiranja.
Pass by reference, Pass by value, Reference, pointer i td su pojmovi koji su definisani mnogo pre JAVE i u svim programskim jezicima oni znace isto i na isti nacin se tumace.
Ovde je problem sto se referenca pogresno tumaci. Da objasnim plasticno:
Petar(objekat) ima nadimka Perica(referenca). Cesto ce te u literaturi videti da se reference porede sa alijasima, znaci samo drugi naziv za isti predmet. Kada ja viknem: "Perice okreni se.", nece se okrenuti njegovo ime (vrednost reference) u "rateP", nego ce se okrenuti on kao osoba(objekat).
Znaci kada se obracate referenci uvek se gleda isto kao da se obracate Objektu.
U tome i jeste razlika izmedju pointera i reference sto se kod pointera uvek obradjate memoriskoj adresi koja upucuje na Objekat.
Kada se pojam reference primeni na prenos parametara (u bilo kom jeziku) uvek se smatra da je parametar Objekat na koji ta referenca ukazuje, a ne sama vrednost reference.
Ovo je jedino ispravno tumacenje parametara u svim programerskim jezicima ovoga sveta jer se svi oni baziraju istim pojmovima.
Da prenesem teoriju u praksu:
Proizvodnja programa dizajniranog u UML.
Vidi ova klasa kaze da prosledim parametar(Objekat) po vrednosti. A da parametri u JAVI se prenose po vrednosti, znaci ne treba nista da uradim.
Gadan za***.
Obezbedim da mi klasa ima clone() i prilikom prosledjivanja parametara je koristim. - ISPRAVNO
Svi koji i dalje gledaju da se u javi parametri prenose po vrednosti ce imati problema ako nekada budu radili u vecim timovima sastavljenim od programera koji rade u razlicitim jezicima.
Lepo je sto ja mogu da odem u francusku i da pricam srpski jezik ali bojim se da me nece niko razumeti.
Isto tako Java programer treba da prica na univerzalnom programerskom jeziku, a ne da palamudi da je vrednost reference parametar, a ne objekat na koji ona ukazuje.
Ponavljam jos jednom referenca je nacin, a parametar je Objekat.
Poz. Gosha
JokeJunky :)
Mrzim sublimirane marketinske poruke.