Junior — Middle
Ինչպե՞ս է իրականացվում փոփոխականների փոխանցումը հղումով մեթոդներ կանչելիս։
sobes.tech AI
Պատասխան AI-ից
Java- ում պարամետրերի փոխանցումը մեթոդներին միշտ կատարվում է արժեքով, այսինքն՝ փոփոխականի արժեքը պատճենվում է։ Սակայն, եթե փոխանցվում է օբյեկտ, պատճենվում է օբյեկտի հղումը, ոչ թե ինքն օբյեկտը։ Սա հաճախ կոչվում է "հղումով փոխանցում", բայց իրականում փոխանցվում է հղման պատճենը։
Սա նշանակում է, որ մեթոդի ներսում կարող եք փոխել այն օբյեկտի վիճակը, որի վրա հղում է կատարվում, բայց չեք կարող փոխել հղումը ինքնին՝ ցույց տալու համար այլ օբյեկտ։
Օրինակ՝
class MyObject {
int value;
}
public class Example {
public static void modifyObject(MyObject obj) {
obj.value = 10; // փոխում ենք օբյեկտի վիճակը
obj = new MyObject(); // փոխում ենք տեղական հղման պատճենը
obj.value = 20; // այս փոփոխությունը չի ազդի մեթոդից դուրս գտնվող օբյեկտի վրա
}
public static void main(String[] args) {
MyObject myObj = new MyObject();
myObj.value = 5;
modifyObject(myObj);
System.out.println(myObj.value); // կարտածի 10
}
}
Այստեղ տեսնում ենք, որ օբյեկտի վիճակի փոփոխությունը մնում է, բայց հղման վերանվանումը չի ազդում սկզբնական օբյեկտի վրա։