Önceki paylaşımımda Java'da metod tanımlamak ve kullanmak ile ilgili bir giriş yapmıştım. Şimdi metodlarda imza konusunu örneklerle izah etmeye çalışacağım.
Örnek: 2 adet sayıyı çarpan ve tamsayı olarak değer döndüren bir Java metodu tanımlayın ve main metodu içerisinden çağırarak kullanın
public static void main(String [] args) {
System.out.println(carp(2,3)); //6
}
public static int carp (int a, int b)
{
return a*b;
}
Problem: 2 adet sayıyı çarparak değerini döndüren metodumuz problemsiz olarak çalışıyor, peki ya çarpmamız gereken 3 değişken olsaydı?
Java, carp metodunu 2,3 ve 4 sayılarını çarpmamız için kullanmak istediğimizde bize hata verdi, çünkü bu metod 2 adet tamsayı alarak çalışan bir metod. Peki carp metodu 2 tamsayıyı çarpmak için hazırlanmış bir metod ise biz her farklı sayıda sayıyı çarpmaya yarayan metoda ayrı ayrı isim mi vermek zorundayız? Hayır, metodlar farklı sayıda ve türde parametreler ile tanımlanabilirler ve her bir metod adı ile parametre dizilimi, o metodun imzası olur. 3 tamsayı parametresi alan bir carp metodu daha tanımlayalım ve önceki 2 parametreli carp metodunun altına ekleyelim.
public static int carp (int a, int b)
{
return a*b;
}
public static int carp (int a, int b, int c)
{
return a*b*c;
}
Şimdi carp adında metod(lar)ın hangi parametreler ile çalışabildiklerini test etmek için main metodu içerisinde carp yazalım ve ctrl+space tuşlarına aynı anda basalım. Eclipse bize carp adında bir metodun 2 farklı şekilde çağırılabileceğini söylüyor: int, int ile int, int, int
Not: Birden fazla farklı parametre alarak çalışan metodlara, method overloading adı verilmektedir.
Madem artık ister 2, istersek de 3 tamsayının çarpımını hesaplayabilen metodlarımız var, ikisini de kullanalım ve bakalım.
public static void main(String [] args) {
System.out.println(carp(2,3));
System.out.println(carp(2,3,4));
}
public static int carp (int a, int b)
{
return a*b;
}
public static int carp (int a, int b, int c)
{
return a*b*c;
}
Çıktı:
6
24
Edit: Peki ya 4 sayıyı çarpmak istersek? Hatta çarpmamız gereken sayıların adetlerini başından bilmiyorsak? Eğer siz de bu soruyu kendinize sorduysanız tebrikler, sizi Değişken sayıda metod parametresi kullanımı ile ilgili hazırladığım Java'da metoda değişken sayıda parametre göndermek yazıma davet ediyorum.