5.00 / 1 oy

Java'da Metod Tanımlamak ve Çağırmak

Metod nedir?

Birden çok kere kullanılması muhtemel fonksiyonlara programlama terminolojisinde metod adı verilir. Metod tanımlamaktaki temel amaç, bir kere kodlanan bir kod bloğunun her gerektiğinde çağırılabilmesidir. Örneğin Math sınıfındaki üst almaya yarayan Math.pow(a,b) metodu, metodların kullanım amaçlarını anlayabilmek için güzel bir örnektir. Java, içerisindeki kütüphaneler ile bir çok hazır metod sunarak gelmektedir ancak Java içerisinde proje ihtiyaçlarına göre kendi metodlarımızı da üretebiliriz.

Metodlar, sadece çağırıldıklarında çalışırlar. Örnek olarak sürekli kodlarımızı yazdığımız main metodu (evet, main metodu da bir metoddur ve bir programın başlangıç noktasını temsil eder) içinden toplam almaya yarayan bir metodu çağıralım.

Java'da Değer Döndüren Metodlar

 public static void main(String [] args) {
 int a=3;
 int b=2;
 int toplam=topla(a,b);
 System.out.println(toplam); //5
}

main metodu içerisinde toplam adında bir değişken tanımladık ve bu değişkenin değerini topla adında bir metoda gönderdiğimiz a ve b parametrelerinin döndürdüğü değere eşitledik. Peki diğer tarafta 2 parametre alarak bir tamsayı değer döndüren bu topla metodu nasıl bir şey olsa gerek?

public static int topla (int a, int b)
{
	return a+b;
}

Bu metodda yazdığımız her bir terimin ne işe yaradığına bakalım:

topla: Metodun adı

int a, int b: Metodun 2 tamsayı parametre alarak kullanılabileceğini tanımladığımız alan

public: topla metodunun erişim belirleyicisi (bu konuya değinmeye daha sıra gelmedi, ama kısaca tüm sınıflar bu metodu görebilir anlamına gelmektedir)

static: statik metodlara da ayrı bir yazı yazacağım ama temel olarak bir nesne üretmeden bu metodu doğrudan kullanabilmemiz amacıyla static olarak tanımlanmıştır

return: Metodun çağırıldıktan sora geri döndüreceği değer (toplama yapan bir metod a+b değerini döndürecektir)

int: Metodun geri döndüreceği değerin veri tipi

 

Örnek: 2 adet tamsayının ortalamasını hesaplayan bir Java metodu tanımlayalım ve main metodu içerisinden çağırarak bir değişkene atayalım:

public static void main(String [] args) {
 int a=8;
 int b=9;
 double ortalama=ortalamaHesapla(a,b);
 System.out.println(ortalama); //8.5
}


public static double ortalamaHesapla (int a, int b)
{
return (a+b)/2.0;
}

Java'da void olarak bir metod tanımlamak

Önceki iki örneğimizde toplam alırken geri dönecek veri türünü int, ortalama hesaplarken ise double olarak tanımladık. Peki her metod bir değer döndürmek zorunda mı? Hayır, mesela sadece çıktı almak için kullanabileceğimiz bir metod olabilir ve bu metod da doğası gereği bir değer döndürmeyecektir. Değer döndürmeyen bu metodlara ise void metodlar adı verilmektedir.

Örnek: Her çağırıldığında bir String'i parametre olarak alan ve 10 kere yazdıran bir Java metodu yazınız ve main metodu içerisinden çağırarak kullanınız.

public static void main(String [] args) {
 ciktiAl("main'e geldim bir tane, metoda attım 10 tane");
}


public static void ciktiAl (String yazi)
{
    for (int i=1; i<=10; i++)
    	System.out.println(yazi);
}

Çıktı:

main'e geldim bir tane, metoda attım 10 tane
main'e geldim bir tane, metoda attım 10 tane
main'e geldim bir tane, metoda attım 10 tane
main'e geldim bir tane, metoda attım 10 tane
main'e geldim bir tane, metoda attım 10 tane
main'e geldim bir tane, metoda attım 10 tane
main'e geldim bir tane, metoda attım 10 tane
main'e geldim bir tane, metoda attım 10 tane
main'e geldim bir tane, metoda attım 10 tane
main'e geldim bir tane, metoda attım 10 tane

Edit: Farklı sayıda ve türde parametreler ile metod imzaları ve overloading konusu ile ilgili Java'da metod imzaları ve kullanım şekilleri yazıma göz atabilirsiniz.

Edit 2: 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ımı da inceleyebilirsiniz.

utku33

03.02.2020 00:32

Bu soru henüz yanıtlanmamış.

Bu soruya sadece kayıtlı kullanıcılar yanıt yazabilirler. Yanıt yazmak için lütfen giriş yapınız.

Reitix
Java'da Metod Tanımlamak ve Çağırmak

İnternet sitemizdeki deneyiminizi iyileştirmek için çerezler kullanıyoruz. Bu siteye giriş yaparak çerez kullanımını kabul etmiş sayılıyorsunuz. Daha fazla bilgi.