Sobes.tech
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.