Junior — Middle
Metodlar çağırılarkən dəyişənlərin referans vasitəsilə ötürülməsi necə həyata keçirilir?
sobes.tech Süni İntellekt
AI-dan cavab
Java-da metodlara parametrlər həmişə dəyər ilə ötürülür, yəni dəyişənin dəyəri kopyalanır. Ancaq, əgər obyekt ötürülürsə, obyektə olan istinad kopyalanır, obyekt özü deyil. Bu çox vaxt "istinad ilə ötürmə" adlanır, amma əslində istinadın nüsxəsi ötürülür.
Bu, metod daxilində parametrə istinad edilən obyektin vəziyyətini dəyişmək mümkün olsa da, istinadın özünü dəyişdirmək və başqa obyektə işarə etməsini təmin etmək mümkün deyil.
Misal:
class MyObject {
int value;
}
public class Example {
public static void modifyObject(MyObject obj) {
obj.value = 10; // obyektin vəziyyətini dəyişirik
obj = new MyObject(); // yerli istinad nüsxəsini dəyişirik
obj.value = 20; // bu dəyişiklik metod xaricindəki obyektə təsir etməz
}
public static void main(String[] args) {
MyObject myObj = new MyObject();
myObj.value = 5;
modifyObject(myObj);
System.out.println(myObj.value); // 10 göstərəcək
}
}
Burada, metod daxilində obyektin vəziyyətində edilən dəyişiklik saxlanılır, amma istinadın yenidən təyin edilməsi təsir etmir.