İçeriğe geç

Metotlar (Methods)

Metot, belirli bir görevi yerine getiren kod bloklarıdır.
Kod tekrarını önler, okunabilirliği artırır ve programı daha modüler hale getirir.


Sözdizimi:

erişim_belirleyici geri_dönüş_tipi metotAdı(parametreler) {
// Kod bloğu
}
public static void selamVer() {
System.out.println("Merhaba Java!");
}

📌 void → metot bir değer döndürmüyorsa kullanılır.


public class Main {
public static void main(String[] args) {
selamVer(); // metot çağrısı
}
static void selamVer() {
System.out.println("Merhaba!");
}
}

public static void topla(int a, int b) {
int sonuc = a + b;
System.out.println("Toplam: " + sonuc);
}
topla(5, 8);

🔹 5. Geri Değer Döndüren Metot (return)

Section titled “🔹 5. Geri Değer Döndüren Metot (return)”
public static int carp(int x, int y) {
return x * y;
}
int sonuc = carp(4, 5);
System.out.println("Çarpım: " + sonuc);

💡 return ifadesi, metottan bir değer döndürür ve çalışmayı sonlandırır.


public static void bilgiler(String ad, int yas) {
System.out.println("Ad: " + ad + ", Yaş: " + yas);
}
bilgiler("Ahmet", 25);

Aynı isimli metotlar, farklı parametre listeleri ile tanımlanabilir.

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

💡 topla(3,4)int versiyonunu,
topla(3.5,2.1)double versiyonunu çağırır.


🔹 8. Metotların Erişim Belirleyicileri

Section titled “🔹 8. Metotların Erişim Belirleyicileri”
BelirleyiciErişim Alanı
publicHer yerden erişilebilir
privateSadece aynı sınıf içinde erişilebilir
protectedAynı paket veya alt sınıflardan erişilebilir
(default)Aynı paket içinden erişilebilir

Sınıfa bağlıdır, nesne oluşturmadan çağrılabilir.

public static void yaz() {
System.out.println("Statik metot!");
}

Çağırma:

Main.yaz();

Nesneye bağlıdır, çağırmak için nesne oluşturmak gerekir.

public void yaz2() {
System.out.println("Nesneye ait metot!");
}
Main m = new Main();
m.yaz2();

TipGeri DeğerÖrnek
voidDeğer döndürmezvoid yaz()
int, String vb.Değer döndürürint topla()

🔹 11. Örnek: Sayıların Ortalama Hesabı

Section titled “🔹 11. Örnek: Sayıların Ortalama Hesabı”
public class Ortalama {
public static double ortalama(double a, double b, double c) {
return (a + b + c) / 3;
}
public static void main(String[] args) {
double sonuc = ortalama(10, 20, 30);
System.out.println("Ortalama: " + sonuc);
}
}

public static int kare(int x) {
return x * x;
}
public static void yazdirKare(int sayi) {
System.out.println("Karesi: " + kare(sayi));
}

💡 Bir metot içinde başka bir metot çağrılabilir.


🔹 13. Rekürsif (Kendi Kendini Çağıran) Metotlar

Section titled “🔹 13. Rekürsif (Kendi Kendini Çağıran) Metotlar”
public static int faktoriyel(int n) {
if (n == 0) return 1;
return n * faktoriyel(n - 1);
}

📈 faktoriyel(5) = 5 * 4 * 3 * 2 * 1 = 120


public class Hesap {
public static int topla(int a, int b) { return a + b; }
public static int cikar(int a, int b) { return a - b; }
public static int carp(int a, int b) { return a * b; }
public static double bol(double a, double b) { return a / b; }
public static void main(String[] args) {
System.out.println("Toplam: " + topla(10, 5));
System.out.println("Fark: " + cikar(10, 5));
System.out.println("Çarpım: " + carp(10, 5));
System.out.println("Bölüm: " + bol(10, 5));
}
}

KavramAçıklamaÖrnek
MetotTekrar kullanılabilir kod bloğuvoid yaz()
Parametreli MetotGirdi alırtopla(int a, int b)
Return MetoduDeğer döndürürreturn x + y;
OverloadingAynı isim, farklı parametrelertopla(int, int) / topla(double, double)
staticNesne oluşturmadan çağrılırMain.metot()

💡 Not: Metotlar, kodunuzu daha modüler hale getirir ve test etmeyi kolaylaştırır. Büyük projelerde düzenli metot yapısı çok önemlidir.