Değişkenler metodlara nasıl aktarılır?
sobes.tech yapay zeka
AI'dan gelen yanıt
Java'da değişkenler metodlara değerleriyle geçirilir.
Bu, bir metoda çağrı yapıldığında, değişkenin değerinin bir kopyasının oluşturulduğu ve bu kopyanın metoda iletildiği anlamına gelir. Metod içindeki parametre üzerinde yapılan değişiklikler sadece bu kopyayı etkiler ve orijinal değişkeni etkilemez.
İlkel veri tipleri (int, float, boolean vb.) doğrudan değer ile geçirilir.
// İlkel veri tipi
int a = 10;
void changeValue(int x) {
x = 20; // Kopya değiştirilir, orijinal değişken 'a' değil
}
changeValue(a);
// Metod çağrısından sonra, 'a' hala 10'dur
Referans tipleri (nesneler, diziler) için, nesneye referansın bir kopyası geçirilir. Referans kendisi kopyalanır, ancak her iki referans da aynı nesneye işaret eder. Metod içinde geçirilen referans aracılığıyla nesnenin durumu üzerinde yapılan değişiklikler, metod dışında da görünür olur. Ancak, referansı yeniden atama, orijinal referansı etkilemez.
// Referans tipi
class MyObject {
int value;
}
MyObject obj = new MyObject();
obj.value = 10;
void changeObjectValue(MyObject o) {
o.value = 20; // Nesnenin durumu değiştirilir, dışarıdan görünür
}
void reassignObject(MyObject o) {
o = new MyObject(); // Yerel referans yeniden atanır, 'obj' etkilenmez
o.value = 30;
}
changeObjectValue(obj);
// Metod çağrısından sonra, obj.value 20 olur
reassignObject(obj);
// Metod çağrısından sonra, 'obj' aynı nesneye işaret etmeye devam eder ve obj.value 20 olur
// reassignObject içinde oluşturulan yeni MyObject dışarıdan erişilebilir değildir
Bu nedenle, Java her zaman değer ile geçiş kullanır, ancak referans tipleri için, referansın değeri kopyalanır, nesne değil.