Sobes.tech
Junior

Java-da metodlara parametrlər necə ötürülür?

sobes.tech Süni İntellekt

AI-dan cavab

Java-da metodlardakı parametrlər dəyər ilə (pass-by-value) ötürülür.

Əsas tiplər:

  • Əsas tipin nüsxəsi ötürülür. Metod daxilində parametrin dəyişdirilməsi xaricdəki orijinal dəyişəni təsir etmir.
// Əsas tip üçün nümunə
public void changeValue(int x) {
    x = x + 10; // Metod daxilində x-in nüsxəsi dəyişir
}

// İstifadə:
int original = 5;
changeValue(original);
// original 5 olaraq qalacaq

Obyektlər (referans tiplər):

  • Obeyektə referansın nüsxəsi ötürülür. Hər iki referans (orijinal və metoddakı parametr) eyni obyektə işarə edir.
  • Referans vasitəsilə obyektin vəziyyətini dəyişmək (məsələn, setter çağırmaq, sahələri dəyişdirmək) orijinal obyektə təsir edəcək.
  • Parametri yeni obyektə yenidən təyin etmək metod daxilində orijinal referansı dəyişmir.
// Referans tipi üçün nümunə (obyekt)
public class MyObject {
    private int value;

    public MyObject(int value) {
        this.value = value;
    }

    public void setValue(int value) {
        this.value = value;
    }

    public int getValue() {
        return value;
    }
}

public void modifyObject(MyObject obj) {
    obj.setValue(100); // Orijinal obyektin vəziyyəti dəyişir
}

public void reassignObject(MyObject obj) {
    obj = new MyObject(200); // Parametr indi yeni obyektə işarə edir, orijinal referans dəyişmir
}

// İstifadə:
MyObject originalObject = new MyObject(10);
modifyObject(originalObject);
// originalObject-in value = 100 olur

MyObject anotherObject = new MyObject(50);
reassignObject(anotherObject);
// anotherObject hələ də orijinal obyektə işarə edir, value = 50

Qısaca: Referansın dəyəri (ünvan) ötürülür, obyekt deyil. Bu, obyektin bu referans vasitəsilə dəyişdirilməsinə imkan verir, amma orijinal referansı başqa obyektə yönəltmək mümkün deyil.