Menu

Java Metot Parametreleri: Argümanlar, Değere Göre Geçiş ve Geri Dönüş

Java metot parametrelerinin nasıl çalıştığı - argüman geçirme, parametre ile argüman arasındaki fark, Java'nın değere göre geçiş kuralı ve değer döndürme.

Bu sayfada çalıştırılabilir editörler var - düzenle, çalıştır ve sonucu anında gör.

Parametreler Bir Metodun Girdi Almasını Sağlar

Her zaman aynı şeyi yapan bir metot sınırlıdır. Parametreler, aynı metodun her çağrıldığında farklı değerler üzerinde çalışabilmesi için metodun parantezleri içinde bildirdiğin girdilerdir.

Her parametreyi bir tip ve bir adla listelersin. Metot gövdesi içinde bir parametre, çağıranın geçirdiği değeri hâlihazırda tutan sıradan bir yerel değişken gibi davranır.

name parametredir. "Sam" ve "Alex" ise argümanlardır - çağrıda sağlanan somut değerler. Tek bir metot tanımı, iki farklı çıktı.

Parametreler ile Argümanlar

Bu iki kelime gevşek bir şekilde kullanılır, ama ayrımı net tutmaya değer:

  • Bir parametre bildirimdeki yer tutucudur: String name.
  • Bir argüman gerçekten geçirdiğin değerdir: "Sam".

Yani void greet(String name) bir parametre bildirir ve greet("Sam") bir argüman geçirir. Birisi "bu metot iki parametre alır" dediğinde bildirimi kasteder; "iki argüman geçirdim" dediğinde ise çağrıyı kasteder.

Çoklu Parametreler

Parametreleri virgülle ayır ve her birine kendi tipini ver - bir değişken bildiriminde yapabileceğin gibi iki parametre arasında bir tipi paylaştıramazsın:

Argümanlar parametrelere kesinlikle konuma göre eşlenir, ada göre değil. describe("Sam", 30, true) çalışır çünkü sıralama (String name, int age, boolean active) ile uyuşur. Uyumlu tiplere sahip iki argümanın yerini değiştirirsen derleme hatası değil, sessiz bir mantık hatası alırsın - bu yüzden sıralama önemlidir.

Yaygın bir hata int add(int a, b) yazmaktır. Her parametrenin kendi tipi olmalıdır: int add(int a, int b).

Bir Değer Döndürme

Parametreler verinin içeri aktığı yoldur; geri dönüş değeri ise bir sonucun dışarı aktığı yoldur. Metot adından önce dönüş tipini bildir ve çağırana bir değer geri vermek için return kullan:

Dönüş tipi (double) gerçekte return ettiğin şeyle uyuşmalıdır. void olarak bildirilen bir metot hiçbir şey döndürmez - yine de erken çıkmak için çıplak bir return; kullanabilir, ama bir değer döndüremez. return çalıştığı anda metot biter ve denetim çağrı yerine geri sıçrar.

Java Değere Göre Geçiş Yapar

Bu başta neredeyse herkesi yanıltır. Bir argüman geçirdiğinde Java değeri parametreye kopyalar. İlkel tipler için bu, metodun kendi kopyasını alması demektir - parametreyi değiştirmek çağıranın değişkenine asla dokunmaz:

x değeri 5 olarak kalır. Metot sayının orijinalini değil, kendi kopyasını değiştirdi.

Nesneleri Geçirmek: Yine Değere Göre, Ama Referansa Dikkat

Nesneler bir istisna gibi görünür, ama değildir. Kopyalanan şey referanstır (nesneyi gösteren ok), nesnenin kendisi değil. Bu yüzden metot aynı nesneyi gösterir ve onu değiştirebilir:

İki farklı sonuç, tek bir kural. addItem referansı izler ve gerçek listeyi değiştirir, bu yüzden çağıran new öğesinin eklendiğini görür. replace, parametreyi tamamen yeni bir listeye yeniden atar - ama bu yalnızca referansın yerel kopyasını yeniden yönlendirir, bu yüzden çağıranın list değişkeni dokunulmamış kalır. Çıkarım: bir parametre aracılığıyla bir nesneyi değiştirebilirsin, ama çağıranın değişkenini asla yeni bir yere işaret ettiremezsin.

Sırada: Metot Aşırı Yükleme

Artık bir metoda ihtiyaç duyduğu girdileri tam olarak nasıl vereceğini biliyorsun. Peki ya tek bir metot adının farklı parametre kümelerini kabul etmesini istersen - örneğin print(int) ve print(String)? Bu metot aşırı yüklemedir ve sıradaki sayfanın konusudur.

Sıkça Sorulan Sorular

Java'da parametre ile argüman arasındaki fark nedir?

Bir parametre, metot bildiriminde adlandırılan değişkendir - void greet(String name) içindeki String name. Bir argüman ise metodu çağırırken geçirdiğin somut değerdir - greet("Sam"), "Sam" argümanını geçirir. Kısacası: parametreler tanımda yaşar, argümanlar çağrıda yaşar.

Java değere göre mi yoksa referansa göre mi geçiş yapar?

Java her zaman değere göre geçiş yapar. İlkel tipler için değerin bir kopyası geçirilir, bu yüzden parametreyi yeniden atamak çağıranın değişkenini değiştiremez. Nesneler için referansın bir kopyası geçirilir - referansın işaret ettiği nesneyi değiştirebilirsin (örneğin bir listeye eleman ekleyebilirsin), ancak parametrenin kendisini yeniden atamak çağıranın değişkenini etkilemez.

Java'da bir metoda birden fazla argüman nasıl geçirilir?

Parametreleri bildirimde virgülle ayırarak listele, her birine kendi tipini ver: int add(int a, int b). Argümanları aynı sırayla geçirerek çağır: add(2, 3). Java argümanları parametrelere ada göre değil, kesinlikle konuma göre eşler, bu yüzden sıralama uyuşmalıdır.

Coddy programming languages illustration

Coddy ile kodlamayı öğren

BAŞLA