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

Այստեղ տեսնում ենք, որ օբյեկտի վիճակի փոփոխությունը մնում է, բայց հղման վերանվանումը չի ազդում սկզբնական օբյեկտի վրա։