Cześć,
Mam problem ze zrozumieniem przekazywania argumentów do metod. Typy proste są dla mnie zrozumiałe - przekazuje je jako wartości (bazuje na innych wartościach - nie zmieniam oryginalnej zmiennej).
Ale z obiektami mam już problem.
Odnosząc się do tego przykładu LINK
A konkretnie to zdanie "Zmieniając argument metody (jego wewnętrzną strukturę), zmieniamy też zewnętrzny obiekt, który został tam przekazany, ale zmieniając referencję parametru metody (na przykład przypisując jej nowy obiekt) nie zmieniamy oryginalnej referencji, a tylko jej kopię."
Mam taki kod:
public static void main(String[] args)
{
Integer zmienna = new Integer(10);
System.out.println(zmienna);
zmiana(zmienna);
System.out.println(zmienna);
}
static void zmiana(Integer a)
{
++a;
System.out.println(a);
}
Myślałem, że jest to przekazanie do metody referencji do zmiennej "zmienna" ale dokonując inkrementacji moja zmienna "zmienna" pozostaje bez zmian (wynosi 10), a operacja w metodzie "zmiana" daje mi wynik 11.
Może mi to ktoś w przystępny sposób wytłumaczyć?