Junior — Middle
Cum se realizează transferul variabilelor prin referință la apelarea metodelor?
sobes.tech AI
Răspuns de la AI
În Java, transmiterea parametrilor către metode se face întotdeauna prin valoare, adică se copiază valoarea variabilei. Cu toate acestea, dacă se transmite un obiect, se copiază referința la obiect, nu obiectul în sine. Acest lucru este adesea numit "transmitere prin referință", dar în realitate se transmite o copie a referinței.
Aceasta înseamnă că în interiorul metodei se poate modifica starea obiectului la care face referire parametrul, dar nu se poate modifica referința în sine pentru a indica către alt obiect.
Exemplu:
class MyObject {
int value;
}
public class Example {
public static void modifyObject(MyObject obj) {
obj.value = 10; // modificăm starea obiectului
obj = new MyObject(); // modificăm copia locală a referinței
obj.value = 20; // această modificare nu va afecta obiectul în afara metodei
}
public static void main(String[] args) {
MyObject myObj = new MyObject();
myObj.value = 5;
modifyObject(myObj);
System.out.println(myObj.value); // va afișa 10
}
}
Aici se poate vedea că modificarea stării obiectului în interiorul metodei se păstrează, dar reasignarea referinței nu.