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.