Parametry przekazywane do funkcji w Javie są przez wartość, co oznacza że wewnątrz funkcji operujemy na kopii obiektu. I kropka. W przypadku typów prostych faktycznie nie ma problemu:
int mainInt = 60; System.out.println("mainInt before changes: " + mainInt); m.changePrimitive(mainInt); System.out.println("mainInt after changes: " + mainInt);
public void changePrimitive(int localInt){ localInt = 3; System.out.println("localInt in function: " + localInt); }
mainInt before changes: 60
localInt in function: 3
mainInt after changes: 60
W przypadku typów obiektowych (referencyjnych) również kopiowany jest obiekt, lecz w praktyce wygląda to nieco inaczej niż w przypadku typów prostych. Czytaj dalej