tag:blogger.com,1999:blog-6093194341069655033.post2529630538957046842..comments2023-08-19T09:24:34.277+02:00Comments on W świecie nowoczesnego IT: SCJP - Parametry metodMariusz Lipińskihttp://www.blogger.com/profile/11337463238256141270noreply@blogger.comBlogger2125tag:blogger.com,1999:blog-6093194341069655033.post-32821054365583425382008-05-29T12:42:00.000+02:002008-05-29T12:42:00.000+02:00W metodzie triple(...) nie zmieniamy zmiennej obj,...W metodzie triple(...) nie zmieniamy zmiennej obj, tylko obiekt "wskazywany" przez tą zmienną, a to jest ogromna różnica. Zmienić wartość zmiennej obj możemy np. poprzez wykonanie instrukcji:<BR/><BR/>obj = null;<BR/><BR/>albo:<BR/><BR/>obj = new SomeClass();<BR/><BR/>Żadna z tych operacji, tj. zmiana wartości zmiennej obj z metody triple(...) nie ma wpływu ani na zmienną obj z metody main(...) ani na obiekt.<BR/><BR/>Pozdr. MariuszMariusz Lipińskihttps://www.blogger.com/profile/11337463238256141270noreply@blogger.comtag:blogger.com,1999:blog-6093194341069655033.post-16339333193118116192008-05-28T11:36:00.000+02:002008-05-28T11:36:00.000+02:00To zdanie się mi nie podoba:"Obie zmienne nazywają...To zdanie się mi nie podoba:<BR/>"Obie zmienne nazywają się tak samo i mają tą samą wartość, jednak są to zupełnie inne zmienne, których wartości możemy zmieniać niezależnie, analogicznie jak wartości zmiennych typów prostych." Tyczy się drugiego przykładu. Przecież jak zrobię tak:<BR/> <BR/>static void triple(SomeClass obj) {<BR/> obj.setX(obj.getX() * 3);<BR/><BR/> System.out.println("x: " + obj.getX());<BR/> }<BR/><BR/>Zmieniając obj w metodzie triple, to zmieniam również obj z metody main, bo wskazuje na to samo miejsce w pamięci, czyż nie? A Ty napisałeś, że są to zupełnie inne zmienne.Rishttps://www.blogger.com/profile/06062221122647131545noreply@blogger.com