Junior — Middle
Jak se provádí předání proměnných odkazem při volání metod?
sobes.tech AI
Odpověď od AI
V jazyce Java je předávání parametrů metodám vždy podle hodnoty, což znamená, že se kopíruje hodnota proměnné. Nicméně, pokud je předán objekt, kopíruje se odkaz na objekt, nikoliv samotný objekt. To se často nazývá "předání odkazem", ale ve skutečnosti se předává kopie odkazu.
To znamená, že uvnitř metody lze změnit stav objektu, na který odkazuje parametr, ale nelze změnit samotný odkaz tak, aby ukazoval na jiný objekt.
Příklad:
class MyObject {
int value;
}
public class Example {
public static void modifyObject(MyObject obj) {
obj.value = 10; // měníme stav objektu
obj = new MyObject(); // měníme lokální kopii odkazu
obj.value = 20; // tato změna nebude mít vliv na objekt mimo metodu
}
public static void main(String[] args) {
MyObject myObj = new MyObject();
myObj.value = 5;
modifyObject(myObj);
System.out.println(myObj.value); // vypíše 10
}
}
Zde je vidět, že změna stavu objektu uvnitř metody zůstává, ale přepsání odkazu nemá vliv na původní objekt.