Sobes.tech
Junior

Java'da metodlara parametreler nasıl iletilir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Java'da metodlardaki parametreler değer ile (pass-by-value) geçirilir.

İlkel Tipler:

  • İlkel tipin bir kopyası geçirilir. Metod içindeki parametre üzerinde yapılan değişiklikler, dışarıdaki orijinal değişkeni etkilemez.
// İlkel tip örneği
public void changeValue(int x) {
    x = x + 10; // Metod içindeki kopya x değiştirilir
}

// Kullanım:
int original = 5;
changeValue(original);
// original 5 olarak kalır

Nesneler (referans tipleri):

  • Nesneye ait referansın bir kopyası geçirilir. Hem orijinal referans hem de metod içindeki parametre referansı aynı nesneye işaret eder.
  • Referans aracılığıyla nesnenin durumu (örneğin, setter çağrısı, alanların değiştirilmesi) değiştirilirse, bu orijinal nesne üzerinde etkili olur.
  • Parametreyi yeni bir nesneye yeniden atamak, dışarıdaki referansı değiştirmez.
// Referans tipi (nesne) örneği
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 nesnenin durumu değiştirilir
}

public void reassignObject(MyObject obj) {
    obj = new MyObject(200); // parametre yeni bir nesneye işaret eder, orijinal referans değişmez
}

// Kullanım:
MyObject originalObject = new MyObject(10);
modifyObject(originalObject);
// originalObject'in değeri 100 olur

MyObject anotherObject = new MyObject(50);
reassignObject(anotherObject);
// anotherObject hala orijinal nesneye işaret eder, değeri 50

Özetle: Referansın değeri (adres) geçirilir, nesne değil. Bu, nesneyi bu referans aracılığıyla değiştirmeye olanak tanır, ancak orijinal referansı başka bir nesneye yönlendirmeyi değiştirmez.