Srodne teme
25.06.2002. java
26.11.2014. Kolju knjigu?
26.08.2002. Dzava
18.10.2002. Pointers ...
19.12.2002. java.security.AccessControlException: access deni..
31.01.2003. java plugin
14.05.2003. Java SDK
01.06.2009. Java u linux-u
04.09.2003. POTREBAN JE JAVA PROGRAMER (J2ME)
17.11.2003. pocetnicko pitanje
Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pointeri i JAVA ili u JAVI :)

[es] :: Java :: Pointeri i JAVA ili u JAVI :)

Strane: < .. 1 2 3 4 5

[ Pregleda: 17957 | Odgovora: 86 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Java Beograd
Novi Beograd

Član broj: 11890
Poruke: 9448
*.lukoil.co.yu.



+10246 Profil

icon Re: Pointeri i JAVA ili u JAVI :)09.06.2008. u 14:09 - pre 192 meseci
Citat:
franticnick: ...
Zato Vanjin primer menja objekat koji je prosledjen.
...
Moram da primetim da je Vanja pomalo "kvarno" :) ubacio ovaj primer kako bi se napravila jos veca pometnja. Naravno, odmah si se upecao :)


Wow ! Vanjin primer menja objekat koji je prosleđen ! Mirakul ! Kako li se samo Vanja toga setio !? Sasvim neuobičajen i "kvaran" primer za Javu. I ja sam se "upecao" !

Sine, prema tvojim postovima, jasno je da si za termin "referenca" saznao pre tri dana:

Citat:
franticnickOk, malo sam proguglao. Izgleda da se odomacio izraz "reference value" za ono sto imamo u Javi.


Tj. pre tri dana si "malo proguglao" u vezi Jave. Ali eto, već danas žariš i pališ i "deliš lekcije".

Bila jedna pesma Riblje Čorbe (popularna rok grupa u SFRJ tokom 80-tih) o alavosti i balavosti.
OTPOR blokadi ulica, OTPOR blokiranom Beogradu, OTPOR blokiranoj Srbiji
 
Odgovor na temu

franticnick

Član broj: 19656
Poruke: 372
*.nedstat.nl.

Sajt: www.franticnick.com


+30 Profil

icon Re: Pointeri i JAVA ili u JAVI :)09.06.2008. u 14:37 - pre 192 meseci
Citat:
Java Beograd: Tj. pre tri dana si "malo proguglao" u vezi Jave. Ali eto, već danas žariš i pališ i "deliš lekcije".

Bila jedna pesma Riblje Čorbe (popularna rok grupa u SFRJ tokom 80-tih) o alavosti i balavosti.


Jeste, procitao si me. Pre tri dana sam jedva nesto malo citao o Javi i to je to :)

Nego molio bih ako mozes da odgovoris na: "Da li se slazes da se reference u Javi uvek prenose by value?"
 
Odgovor na temu

augustus
Novi Sad - Beograd

Član broj: 101581
Poruke: 358
*.com
Via: [es] mailing liste



+46 Profil

icon Re: Pointeri i JAVA ili u JAVI :)09.06.2008. u 14:45 - pre 192 meseci
Naravno da se prenose, ali poenta je bila da se sa njima ne mozes igrati
nego samo sa objektima na koje te reference ukazuju.Sta ti vredi prenos
reference po vrednosti kad ti nista ne znaci. Objekat je ono sto nas
zanima. Kako bi nazvao kad u C++ prosledis pokazivac funkciji? Prosledio
sam pokazivac po vrednosti? A kako kad prosledis pokazivac na pokazivac?
Hehe...kad se samo setim toga....
"Čovek je biće koje se na sve navikava, i ja mislim da je ovo njegova najbolja definicija."
Fjodor M. Dostojevski
 
Odgovor na temu

franticnick

Član broj: 19656
Poruke: 372
*.nedstat.nl.

Sajt: www.franticnick.com


+30 Profil

icon Re: Pointeri i JAVA ili u JAVI :)09.06.2008. u 14:58 - pre 192 meseci
@augustus
Moja poenta je da se u Javi sve prenosi po vrednosti. To pokusavam da kazem u ne znam koliko poslednjih postova.

Sto se tice C++ zavisi kako bi argument f-je bio deklarisan :)
 
Odgovor na temu

augustus
Novi Sad - Beograd

Član broj: 101581
Poruke: 358
*.com
Via: [es] mailing liste



+46 Profil

icon Re: Pointeri i JAVA ili u JAVI :)09.06.2008. u 15:03 - pre 192 meseci
Problem je sto se tako ne mozes izraziti bez objasnjenja.
fuja(Object o) - i kad kazes da se prenosi po vrednosti, prva stvar koja
se pomisli jeste ta da se vrednost objekta o prosledila, a nije vec
vrednost njegovog pokazivaca ili ti referenca ili ti neka tamo lokacija
u memoriji.
"Čovek je biće koje se na sve navikava, i ja mislim da je ovo njegova najbolja definicija."
Fjodor M. Dostojevski
 
Odgovor na temu

franticnick

Član broj: 19656
Poruke: 372
*.nedstat.nl.

Sajt: www.franticnick.com


+30 Profil

icon Re: Pointeri i JAVA ili u JAVI :)09.06.2008. u 15:10 - pre 192 meseci
@augustus
U postu gde objasnjavam Vanjin primer (a i u onom gde objasnjavam moj) objasnio sam na sta mislim. A imate i mucky-jev post gde je sve kristalno jasno. Tesko da je to moglo ostati nerazjasnjeno.
 
Odgovor na temu

mucky
Aleksandar Mastilović
Freelancer
Novi Sad - Srbija

Član broj: 237
Poruke: 412
*.neobee.net.



+1 Profil

icon Re: Pointeri i JAVA ili u JAVI :)09.06.2008. u 19:01 - pre 192 meseci
Svako u svojoj glavi mozhe ovu problematiku objashnjavati kako hocje, pa eto mozhe recji i da se objekti u Javi prosledjuju po referenci.

Ali ipak je ovo javni forum, i dosta pochetnika ovde dolazi da neshto nauchi, i stoga smatram da se stvari moraju nazivati pravim imenima. Jeste tezhe i komplikovanije, ali je jedino ispravno!

Dakle, josh jednom cju ponoviti:

1.
Code:
Object a = new Object();

Promenljiva a NIJE objekat. Promenljiva a je POKAZIVACH NA OBJEKTE TIPA Object, i nakon izvrshavanja ove linije taj pokazivach u sebi sadrzhi adresu ka novokreiranom objektu. Pokazivach a mozhete menjati na dva nachina: dodeliti mu adresu nekog drugog objekta, ili vrednost null. Od logichkih funkcija, pokazivachi u Java jeziku podrzhavaju samo proveru (ne)jednakosti.

2. U Java programskom jeziku, funkcijama se svi argumenti prosledjuju PO VREDNOSTI (CALL BY VALUE). Poshto objektima pristupamo preko pokazivacha (ili reference, svejedno), funkcijama zapravo ne prosledjujemo objekte nego pokazivache na te objekte. Postoje programski jezici u kojima je implementirano pravo prosledjivanje argumenata po referenci (call by reference), ali u Java jeziku to definitivno nije sluchaj.
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+710 Profil

icon Re: Pointeri i JAVA ili u JAVI :)09.06.2008. u 21:45 - pre 192 meseci
Ja nemam neko veliko Java iskustvo, ali nije li malo rogobatno stalno pričati "metoda prima referencu na objekat klase T" umesto "metoda prima objekat klase T"? Čisto onako sa stanovišta jezičke i mentalne ekonomije? Mislim, nikad se i ne prosleđuju sami objekti, jel tako? Dakle, kad neko kaže "prosleđujem objekat", uvek podrazumeva da prosleđuje referencu. A ako već, apstraktno gledano, prosleđuje objekat, taj objekat se defakto prosleđuje po referenci (što je ekvivalentno tome da se zapravo njegova referenca prosleđuje po vrednosti).
 
Odgovor na temu

franticnick

Član broj: 19656
Poruke: 372
*.cable.casema.nl.

Sajt: www.franticnick.com


+30 Profil

icon Re: Pointeri i JAVA ili u JAVI :)09.06.2008. u 22:29 - pre 192 meseci
Citat:

"There is exactly one parameter passing mode in Java - pass by value - and that helps keep things simple." The Java Programming Language, 2nd ed. by Ken Arnold and James Gosling, section 2.6.1, page 40, 3rd paragraph.


Za one koji ne znaju, James Gosling se smatra autorom programskog jezika Java. (http://en.wikipedia.org/wiki/James_Gosling)
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+710 Profil

icon Re: Pointeri i JAVA ili u JAVI :)09.06.2008. u 22:44 - pre 192 meseci
Sve to stoji, ali da li ja zaista grešim ako kažem da sam ovime: metoda(objekat) pozvao metodu i prosledio joj objekat (po referenci)?
 
Odgovor na temu

srki
Srdjan Mitrovic
Auckland, N.Z.

Član broj: 2237
Poruke: 3654
*.aut.ac.nz.



+3 Profil

icon Re: Pointeri i JAVA ili u JAVI :)09.06.2008. u 23:30 - pre 192 meseci
Citat:
jablan: Ja nemam neko veliko Java iskustvo, ali nije li malo rogobatno stalno pričati "metoda prima referencu na objekat klase T" umesto "metoda prima objekat klase T"? Čisto onako sa stanovišta jezičke i mentalne ekonomije? Mislim, nikad se i ne prosleđuju sami objekti, jel tako?


U Javi ne ali u C++u da! Recimo ako u C++u definisemo someFunction(Integer i) onda ce se za razliku od Jave zvati copy constructor za objekat i, pa ce se lepo preneti samo vrednost. To je zato sto u C++u deklaracija Integer i; znaci da je i objekat tipa Integer dok to u Javi znaci da je i konstantni pointer na objekat tipa Integer. U C++u bi to pisao kao Integer* const i = new Integer(10);.

Citat:
Sve to stoji, ali da li ja zaista grešim ako kažem da sam ovime: metoda(objekat) pozvao metodu i prosledio joj objekat (po referenci)?
Kao sto rekoh, u pitanju je samo terminologija oko koje se ne slazemo ali izgleda da je Java Beograd to prevideo pa je pomislio da neko ne razume sta se desava i to je razlog njegovog tona.

@Gosha: sta je pogresno rekao da bi pitao koliki mu je staz u programiranju?

[Ovu poruku je menjao srki dana 10.06.2008. u 00:43 GMT+1]
 
Odgovor na temu

gosha
Zemun

Član broj: 2384
Poruke: 589
*.adsl-a-1.sezampro.yu.



+40 Profil

icon Re: Pointeri i JAVA ili u JAVI :)10.06.2008. u 00:50 - pre 192 meseci


Kome i dalje nije jasno neka menja profesiju ;)

Poz. Gosha
JokeJunky :)

Mrzim sublimirane marketinske poruke.
 
Odgovor na temu

srki
Srdjan Mitrovic
Auckland, N.Z.

Član broj: 2237
Poruke: 3654
*.aut.ac.nz.



+3 Profil

icon Re: Pointeri i JAVA ili u JAVI :)10.06.2008. u 01:06 - pre 192 meseci
Izgleda da tebi nije jasno sta je on pokusao da kaze a i ja u mojoj poruci. U pitanju je terminologija i ja to posmatram kao da je u Javi nemoguce napraviti promenjivu koja je Objekat vec samo promenjivu ciji je tip konstantni pokazivac na neki objekat (za razliku od C++ gde je moguce uraditi i jedno i drugo). Zbog toga smatram da je u Javi uvek pass by value kao sto kaze i tvorac jave dok u C++u mozes da deklarises funkciju da bude i pass by reference. Da li ti isto tako mislis ili mislis da je u javi ponekad pass by reference a ponekad pass by value u zavisnosti od toga da li je promenjiva primitiva ili ne?
 
Odgovor na temu

mucky
Aleksandar Mastilović
Freelancer
Novi Sad - Srbija

Član broj: 237
Poruke: 412
*.neobee.net.



+1 Profil

icon Re: Pointeri i JAVA ili u JAVI :)10.06.2008. u 01:46 - pre 192 meseci
Znachi Gosho, u tvojoj interpretaciji sheme koju si nam tako samouvereno poslao, kada u call by value jeziku nekoj funkciji prosledimo pointer na objekat, u toj funkciji dobijemo i kopiju pointera i kopiju objekta? Katastrofa!
 
Odgovor na temu

Au197/79
Zlatan Kadragić
Minhen

Član broj: 3556
Poruke: 772
*.adsl.beotel.net.

Sajt: aurelije.blogspot.com


+47 Profil

icon Re: Pointeri i JAVA ili u JAVI :)10.06.2008. u 08:59 - pre 192 meseci
Goshin primer pod a) (uz grešku koju je mucky primetio) je iz C++, dakle čovek je promašio podforum. Kao što je već rečeno u javi se objektni nikad ne prenose niti postoji promenjiva koja čuva objekat, već se isključivo čuvaju i penose <java terminologija>reference</javina terminologija> što je slično <c/c++ i uobičajena terminologija>pokazivačima samo bez mogućnosti primene aritmetičkih operatora, nema uzimanja adrese sa &, nema derefereciranja sa * ili -> (zapravo ima sa „.“) , a sva ostala analogija funkcioniše</c/c++ i uobičajena terminologija>

Način prenošenja argumenata na parametre se u uobičajenoj terminologiji zove call by value i bukvalno je isti kao u C-u. Call by reference je ono sa VAR parametrima u paskalu. Jeste da se to interno prevodi na prenošenje pokazivača i menjanje onoga na šta pokazivač pokazuje (što se C-u može ručno uraditi, a i u javi je ekvivalentno menjanju objekata preko referece, ali nije moguće uraditi sa prostim tipovima, osim preko nekog wrapera koji nije immutable) ali Call by reference je kad ti u samom jeziku imaš direktnu podršku za to.

[Ovu poruku je menjao Au197/79 dana 10.06.2008. u 10:14 GMT+1]
Bolje džaba ležat nego džaba radit.
 
Odgovor na temu

gosha
Zemun

Član broj: 2384
Poruke: 589
*.adsl-1.sezampro.yu.



+40 Profil

icon Re: Pointeri i JAVA ili u JAVI :)10.06.2008. u 09:31 - pre 192 meseci
Citat:
mucky: Znachi Gosho, u tvojoj interpretaciji sheme koju si nam tako samouvereno poslao, kada u call by value jeziku nekoj funkciji prosledimo pointer na objekat, u toj funkciji dobijemo i kopiju pointera i kopiju objekta? Katastrofa!

A jesam li ja nacrtao memoriju ili funkciju ? Lepo odgovoris na ovo pitanje pa ces, nadam se, skontati sta je "katastrofa" u celoj ovoj temi.
I da posle 20 godina programiranja mogu krajnje samouvereno da nastupam u objasnjavanju kako se posmatra nacin prenosenja parametara.

Za kraj od mene jos jedan nacin za odlucivanje da li je BY REF ili BY VAL:

Class A (mod: greska treba Objekat A)

prosledjujem A

da li ce izmene nad A ostati po izlasku iz f-je ?

HOCE - PASS BY REFERENCE
NECE - PASS BY VALUE

Poz. Gosha

[Ovu poruku je menjao gosha dana 10.06.2008. u 10:46 GMT+1]
JokeJunky :)

Mrzim sublimirane marketinske poruke.
 
Odgovor na temu

Java Beograd
Novi Beograd

Član broj: 11890
Poruke: 9448
*.lukoil.co.yu.



+10246 Profil

icon Re: Pointeri i JAVA ili u JAVI :)10.06.2008. u 09:38 - pre 192 meseci
Hvala bogu da neko nešto pametno napiše. (Mislim na poslednji post Au197/79 i potpuno poslednje Gošine reči)

Uzgred, primećujem nekoliko pojava:
- S idejom "SVE JE TO ISTO" C++ develoepri kreću u Java development, i ni ne pokušavaju da počnu da razmišljaju u Javi.
- Masa svršenih i nesvršenih studenata raznih fakulteta prenosi "znanja" svojih asistenata iz skripti sumnjivog kvaliteta.

Ali nije to ništa naspram papazjaniji u C# svetu gde su se sjatili i Java i C++ developeri, a vesela objektno orijentisana družina je upotpunjena belosvetskom komunom Visual Basic (!?) developera. Šlag na tortu čine ASP i PHP developeri. Šta je sledeće ?

OTPOR blokadi ulica, OTPOR blokiranom Beogradu, OTPOR blokiranoj Srbiji
 
Odgovor na temu

Toxter
NS

Član broj: 39393
Poruke: 317
82.117.202.*



+6 Profil

icon Re: Pointeri i JAVA ili u JAVI :)10.06.2008. u 09:43 - pre 192 meseci
Citat:
gosha:
Class A

prosledjujem A

da li ce izmene nad A ostati po izlasku iz f-je ?

HOCE - PASS BY REFERENCE
NECE - PASS BY VALUE

Poz. Gosha



Ovo je sustina svega.

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

franticnick

Član broj: 19656
Poruke: 372
*.nedstat.nl.

Sajt: www.franticnick.com


+30 Profil

icon Re: Pointeri i JAVA ili u JAVI :)10.06.2008. u 09:44 - pre 192 meseci
Citat:
jablan: Sve to stoji, ali da li ja zaista grešim ako kažem da sam ovime: metoda(objekat) pozvao metodu i prosledio joj objekat (po referenci)?


Pa sad, ako stvari posmatras filozofski onda verovatno ne gresis ;) Nego ozbiljno, mislim da je oko ovih stvari veoma vazno biti krajnje precizan i odredjen. Vidis i sam koliko je proizvoljnih tumacenja napravila losa definicija "pass by reference" koja se eto jos uvek moze naci i u ponekoj Java knjizi.
 
Odgovor na temu

mucky
Aleksandar Mastilović
Freelancer
Novi Sad - Srbija

Član broj: 237
Poruke: 412
*.neobee.net.



+1 Profil

icon Re: Pointeri i JAVA ili u JAVI :)10.06.2008. u 10:01 - pre 192 meseci
Citat:
gosha: A jesam li ja nacrtao memoriju ili funkciju ? Lepo odgovoris na ovo pitanje pa ces, nadam se, skontati sta je "katastrofa" u celoj ovoj temi.
I da posle 20 godina programiranja mogu krajnje samouvereno da nastupam u objasnjavanju kako se posmatra nacin prenosenja parametara.


Mi se ovde upljuvali prichajucji o prenoshenju argumenata funkciji, ti se pojavljujesh sa dijagramom sumnjive relevantnosti i sa 20 godina programerskog iskustva, i sad josh relativizujesh "na shta si u stvari mislio". Chak ni time necesh da nas prosvetlish, nego nas pushtash da eto sami, glupavi, neprofesionalni i neiskusni zakljuchimo shta si ti u stvari hteo da nam kazhesh.

I taj tvoj primer je opet neprecizan, jer se "objekat A" mozhe proslediti funkciji preko pointera ili direktno (naravno, direktno ne mozhe u Java jeziku). I shta onda to tvoje iskusno rezonovanje "HOCE-NECE" znachi? Ovo je retorichko pitanje, ne morash odgovarati.

Ja sam sa svoje strane do sada rekao ono shto mislim da je vredno pazhnje, i da je 100% istina (ne po mom rezonovanju nego zvanicnom ispravnom rezonovanju). Stoga, povlachim se odavde kao i Java Beograd (i ne zovem svog Goshu da me brani dijagramima) :)


P.S. I moja baba-strina je imala 80+ godina pa u zhivotu nije videla more. It's not about the year of production, it's about the mileage.
 
Odgovor na temu

[es] :: Java :: Pointeri i JAVA ili u JAVI :)

Strane: < .. 1 2 3 4 5

[ Pregleda: 17957 | Odgovora: 86 ] > FB > Twit

Postavi temu Odgovori

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