Fonksiyonlar

Bilgisayar ve Programlamaya Giriş
TanımParametreDönüşKapsamTasarım
Sercan KÜLCÜ · Giresun Üniversitesi

Giriş

Öğrenme Çıktıları

Tanımlama

Metot bildirimi ve çağrısını yazmak.

Veri akışı

Parametre ve dönüş değerini kullanmak.

Kapsam

Yerel değişkenlerin yaşam alanını açıklamak.

Tasarım

Kısa, odaklı ve test edilebilir metotlar kurmak.

Temeller

Fonksiyon Nedir?

  • Java'da fonksiyonlar sınıf içinde metot olarak tanımlanır.
  • Belirli görevi adlandırır ve tekrar kullanılabilir bir birim oluşturur.
  • Girdi parametrelerle alınır; sonuç dönüş değeriyle verilebilir.

Temeller

Metot Çalışması

Argümanları değerlendir
Parametrelere aktar
Gövdeyi çalıştır
Değer döndür
Çağrıya devam et

Temeller

Metot Tanımı

static int topla(int a, int b) {
    int sonuç = a + b;
    return sonuç;
}
  • int dönüş türüdür.
  • a ve b biçimsel parametrelerdir.
  • return çağırana sonucu verir.

Temeller

Metot Çağrısı

int toplam = topla(5, 3);
System.out.println(toplam);
  • 5 ve 3 gerçek argümanlardır.
  • Dönen değer değişkene atanabilir veya başka ifadede kullanılabilir.

Temeller

Metot Bildiriminin Parçaları

ParçaÖrnekGörev
ErişimpublicKim çağırabilir?
NiteleyicistaticNesne gerekiyor mu?
Dönüş türüintHangi değer döner?
AdtoplaGörevin adı
Parametreint aHangi girdi alınır?

Dönüş

void Metotlar

  • void, metot çağrısına bir değer döndürmediğini belirtir.
  • Ekrana yazma veya nesnenin durumunu değiştirme gibi yan etkiler üretebilir.
  • return; ifadesi void metottan erken çıkmak için kullanılabilir.

Dönüş

Erken Dönüş

static void yazdırPozitif(int sayı) {
    if (sayı <= 0) return;
    System.out.println(sayı);
}
  • Özel durumu başta ele almak iç içeliği azaltabilir.
  • Değer döndüren metotta her yol uyumlu bir değer döndürmelidir.

Parametreler

Parametre Aktarımı

  • Java her zaman değere göre aktarım kullanır.
  • İlkel türde değerin kopyası aktarılır.
  • Nesne için başvuru değerinin kopyası aktarılır; nesne değişebilir fakat çağıranın değişkeni yeniden bağlanmaz.

Parametreler

Değere Göre Aktarım

static void artır(int x) { x++; }

int sayı = 5;
artır(sayı);
System.out.println(sayı); // 5
  • Metottaki x bağımsız bir yerel değişkendir.

Parametreler

Aşırı Yükleme

  • Aynı sınıfta aynı adla farklı parametre listesine sahip metotlar tanımlanabilir.
  • Yalnızca dönüş türünü değiştirmek yeterli değildir.
  • Derleyici çağrıdaki argümanlara göre uygun bildirimi seçer.

Parametreler

Metot Aşırı Yükleme

static int alan(int kenar) {
    return kenar * kenar;
}
static int alan(int en, int boy) {
    return en * boy;
}

Nesneler

Yapıcı Metot

  • Constructor, yeni nesnenin başlangıç durumunu kurar.
  • Sınıfla aynı adı taşır ve dönüş türü yazılmaz.
  • new ifadesi nesneyi oluşturur ve uygun yapıcıyı çağırır.

Nesneler

Yapıcı Örneği

class Kitap {
    String ad;
    Kitap(String ad) {
        this.ad = ad;
    }
}
Kitap k = new Kitap("Algoritmalar");

Nesneler

Nokta Operatörü

  • Nesnenin alan veya metoduna erişir: kitap.ad veya kitap.yazdır().
  • static üyeler genellikle sınıf adıyla çağrılır: Math.sqrt(9).
  • Erişim belirleyiciler hangi üyelerin görünür olduğunu sınırlar.

Kapsam

Yerel Kapsam

  • Parametreler ve metot içinde tanımlanan değişkenler yereldir.
  • Bir blokta tanımlanan değişken yalnızca o blok ve iç bloklarda görünür.
  • Aynı kapsamda aynı adlı iki yerel değişken tanımlanamaz.

Kapsam

Kapsam Örneği

static int hesapla(int n) {
    int sonuç = 0;
    if (n > 0) {
        int katkı = n * 2;
        sonuç += katkı;
    }
    return sonuç;
}
  • katkı yalnızca if bloğu içinde görünür.
  • sonuç tüm metot gövdesinde kullanılabilir.

Tasarım

Soyutlama

  • Metot çağıran koddan uygulama ayrıntısını saklar.
  • İyi adlandırılmış metot ne yapıldığını açıklar; nasıl yapıldığı gövdede kalır.
  • Uygulama değiştiğinde çağıranların etkilenmemesi bakım maliyetini azaltır.

Tasarım

Problemi Parçalama

  • Büyük görevi tek sorumluluklu alt görevlere ayırın.
  • Her alt görev için girdi, çıktı ve hata davranışını belirleyin.
  • Üst düzey metot bu görevleri anlamlı sırada birleştirsin.

Tasarım

İyi Metot Tasarımı

İlkeSoru
Tek görevMetot tek cümleyle açıklanabiliyor mu?
Anlamlı adAd sonuç veya eylemi söylüyor mu?
Az parametreGirdilerin hepsi gerekli mi?
Belirgin sonuçDönüş ve yan etkiler açık mı?
Test edilebilirlikMetot bağımsız örneklerle denenebilir mi?

Kütüphane

Sık Kullanılan Hazır Metotlar

  • Math sayısal işlemler sağlar: abs, max, sqrt, pow.
  • String metotları metin arar, böler ve dönüştürür.
  • Arrays sıralama, arama ve gösterim yardımcıları sunar.
  • Kütüphane metotlarında parametre, dönüş ve hata belgeleri okunmalıdır.

Özet

Bölüm Özeti

  • Metot görevleri adlandırır, girdi alır ve sonuç döndürebilir.
  • Java'da argümanlar değere göre aktarılır.
  • Kapsam değişkenin nerede erişilebilir olduğunu belirler.
  • İyi metot kısa, tek görevli, anlamlı adlandırılmış ve test edilebilirdir.

Özet

Kontrol Soruları

  1. Parametre ile argüman arasındaki fark nedir?
  2. void metot hangi durumda kullanılır?
  3. Java'da nesne başvurusu nasıl aktarılır?
  4. Aşırı yüklemede hangi bölüm farklı olmalıdır?
  5. Yerel kapsam neden yararlıdır?

Son

Fonksiyonlar
1 / 1Sercan KÜLCÜ, Tüm hakları saklıdır.

← → veya boşluk ile gezinin · F: tam ekran · Home/End: ilk/son slayt