Hoe wordt de overdracht van variabelen per referentie uitgevoerd bij het aanroepen van methoden?
sobes.tech AI
Antwoord van AI
In Java wordt parameteroverdracht aan methoden altijd per waarde gedaan, dat wil zeggen dat de waarde van de variabele wordt gekopieerd. Echter, als een object wordt doorgegeven, wordt de verwijzing naar het object gekopieerd, niet het object zelf. Dit wordt vaak "doorgeven per referentie" genoemd, maar in werkelijkheid wordt een kopie van de verwijzing doorgegeven.
Dit betekent dat binnen de methode de toestand van het object waar de verwijzing naar wijst, kan worden gewijzigd, maar dat de verwijzing zelf niet kan worden gewijzigd om naar een ander object te wijzen.
Voorbeeld:
class MyObject {
int value;
}
public class Example {
public static void modifyObject(MyObject obj) {
obj.value = 10; // wijzig de toestand van het object
obj = new MyObject(); // wijzig de lokale kopie van de verwijzing
obj.value = 20; // deze wijziging heeft geen invloed op het object buiten de methode
}
public static void main(String[] args) {
MyObject myObj = new MyObject();
myObj.value = 5;
modifyObject(myObj);
System.out.println(myObj.value); // zal 10 afdrukken
}
}
Hier is te zien dat de wijziging van de toestand van het object binnen de methode behouden blijft, maar de heraanduiding van de verwijzing niet.